最近研究代理dll。但是导出名称遇到问题,原dll导出的函数结尾都带“@xx”,但是我编译的dll@会被去掉。
比如
_GetData@12=_MyFunc
应该导出“_GetData@12”才能用,但我只能导出“_GetData”。
试过加引号,但是没用。这个要怎么搞才行?
比如
_GetData@12=_MyFunc
应该导出“_GetData@12”才能用,但我只能导出“_GetData”。
试过加引号,但是没用。这个要怎么搞才行?
不知是不是那个
extern "C"{
#endif__declspec(dllexport) void __stdcall test()
{}#ifdef __cplusplus
}
#endif
比如_GetData@12=_MyFunc,我输出后是“_MyFunc@0”而不是“_GetData@12”
extern "C"{
#endif__declspec(dllexport) void __stdcall test( int a, int b, int c )
{}#ifdef __cplusplus
}
#endif
extern "C" __declspec(naked) void _MyFunc01()
{
__asm
{
jmp p[0*4];
}
}
def文件 自定义导出名称
只是后面那个@xx老是被自动去掉。不知道编译器有没有设置能忽略@。
......
_GetData@12=_MyFunc@XX
extern "C" __declspec(naked) void _MyFunc01(int a,int b,int c)
{
__asm
{
pop ebp;
jmp p[0*4];
}
}
恭喜一下.