谁能告诉我这段代码是怎么运行的?
[code=C/C++][/code]//hello.c by MentalDease
#include <stdio.h>
void print()
{
#pragma comment(linker, "/entry:print")
#pragma comment(linker, "/SECTION:.text,REW")
int mainCRTStartup();
void main();
__asm
{
MOV EAX, OFFSET main
MOV BYTE PTR[EAX], 0xB8//MOV EAX, 0x
MOV DWORD PTR[EAX+1], OFFSET SHOWSTRING
MOV WORD PTR[EAX+5], 0xE0FF// JMP EAX
}
mainCRTStartup();
SHOWSTRING:
printf ("i am MentalDease\n");
printf ("helloworld!!\n");
getchar();
}
void main()
{
}
[解决办法]
#pragma comment(linker, "/entry:print")
入口函数改成print
MOV WORD PTR[EAX+5], 0xE0FF // JMP EAX
跳到EAX寄存器内地址
预编译控制和汇编语言,技巧秀吗?
完全没价值的玩意。