怎样修改程序入口地址

 时间:2026-04-24 20:09:56

1、extern "C" int __cdecl mainCRTStartup(void);  //注意:若源文件是.c结尾的话,不需要这一句

2、__asm

{

MOV EAX, OFFSET main

MOV BYTE PTR[EAX], 0xB8 //MOV EAX, 0x      //mov

MOV DWORD PTR[EAX+1], OFFSET SHOWSTRING    //将printf语句地址放在eax+1处

MOV WORD PTR[EAX+5], 0xE0FF // JMP EAX:FFE0

}

3、#include "stdio.h"

extern "C" int __cdecl mainCRTStartup(void);  //注意:若源文件是.c结尾的话,不需要这一句

void print()

#pragma comment(linker, "/entry:print")

#pragma comment(linker, "/SECTION:.text,ERW")

#pragma comment(lib, "msvcrt.lib")

int mainCRTStartup();

void main();

__asm

{

MOV EAX, OFFSET main

MOV BYTE PTR[EAX], 0xB8 //MOV EAX, 0x      //mov

MOV DWORD PTR[EAX+1], OFFSET SHOWSTRING    //将printf语句地址放在eax+1处

MOV WORD PTR[EAX+5], 0xE0FF // JMP EAX:FFE0

}

mainCRTStartup();

// __asm

// {

// leave

// ret

// }

SHOWSTRING:

printf("hello,world!\n");

__asm

{

xor eax,eax

ret

}

}

void main()

{

}

  • 女孩子适合学什么专业
  • 星空之遇如何移除黑名单里的用户
  • 如何处理课堂教学中的突发事件
  • c++中的deque容器怎么重新指定容器长度?
  • 什么是亚健康?
  • 热门搜索
    体味的意思 果实累累的意思 淡泊的意思 什么是玻璃纸 什么时间喝蜂蜜最好 到期还款日是什么意思 发胶什么牌子好 木瓜什么意思 澳门什么时候可以恢复正常过关 知难而退的意思