在实验《逆向工程核心原理》的代码注入的时候,因为喜欢跟原生编译器接触的颗粒度,没有使用IDE,所以编译环境出现问题,编译器识别不了入口函数。
int _tmain(int argc,TCHAR *argv[])
{
if(argc != 3)
{
_tprintf(L"USAGE : %s pid dll_path\n", argv[0]);
return 1;
}
if( InjectDll((DWORD)_tstol(argv[1]),argv[2]))
_tprintf(L"InjectDll(\"%s\") sucess!!!\n", argv[2]);
else
_tprintf(L"InjectDll(\"%s\") failed!!!\n", argv[2]);
return 0;
}
后来在看到这篇文章之后茅塞顿开关于main(),wmain(),winMain(),wWinMain(),_tmain(),_tWinMain()的理解。_台风吹过的夏天的博客-优快云博客
原因是没有#define UNICODE,编译器无法初始化有关wmain()的相关设置,导致_tmain被识别为WinMain
查询GCC的官方手册:
在编译启动项中加入 -municode
成功生成可执行文件