【发布时间】:2010-09-05 02:11:23
【问题描述】:
我有一个黑客程序;它向目标进程注入一些函数来控制它。该程序是用 C++ 编写的,带有内联汇编。
class GameProcMain {
// this just a class
};
GameProcMain* mainproc; // there is no problem I can do =(GameProcMain*)0xC1EA90
现在我想定义一个类函数(将 ecx 设置为类指针)而不是编写程序集。
PPLYDATA GetNearblyMob(__Vector3* cordinate) {
__asm {
mov ecx, 0xC1EA90
enter code here
push cordinate
mov edi, 0x4A8010
call edi
}
}
我想定义它并像这样称呼它。
PPLYDATA (DLPL::*GetNearblyMob)(__Vector3* cordinate);
mainproc->GetNearblyMob(ADDR_CHRB->kordinat)
当我尝试GetNearblyMob=(PPLYDATA (DLPL::*)(__Vector3*)) 0x4A8010;
上面写着类似error: invalid type conversion: "int" to "PPLYDATA (DLPL::*)(int, int)"
但我可以这样做来设置指针:
void initializeHack() {
__asm {
LEA edi, GetNearblyMob
MOV eax, 0x4A8010
MOV [edi], eax
}
}
现在我想学习“如何在不使用程序集的情况下合法地在 C++ 中设置 GetNearblyMob”。
【问题讨论】:
-
你可能不会在这里找到太多帮助来让你的游戏作弊代码发挥作用。
-
作弊有什么问题?就个人而言,我在 ZX-80 游戏中学习了很多汇编学习作弊。
-
msw,但是我的 hack 可以工作并且没有这个东西也可以工作。我只想编译器生成智能汇编代码,而不是我自己。因为我组装了很多函数,img268.imageshack.us/img268/3432/hackzv.jpg p.s hamster3null,再次感谢你,我也学会了用作弊的组装,我可以使用很多调试器来破解应用程序和挂钩directx。
标签: c++ pointers function-pointers casting