返回信息流俺一个菜鸟,刚开始学做外挂。碰到了个问题如下:
针对现在最新版的诛仙(已打最新补丁),我找了打坐的几个CALL。
下面是我找的最有可能的两个CALL(我都能担保就这两个CALL之间的一个):
CALL 0071E6C0 打坐
CALL 00465C80 打坐(最有可能)
我在OD中在上述两个CALL上都设了中断,每次按 打坐键后都会先断在CALL 00465C80上,而且按其他键都不会被断,所以我觉得第二个最有可能是要找的CALL。
之后做了个“打坐”按钮进行测试,对这两个CALL都测试了,但每次诛仙 都是异常退出,不知道是自己的CALL还没找对还是汇编错了。
下面是我用VC++ 编的 在BUTTON上的消息响应函数和汇编:
void dazuo()
{
_asm
{
pusha
mov eax,0x00465C80
call eax
popa
}
}
void CWowDlg::OnRest() //这是“打坐”按钮的消息响应函数
{
// TODO: Add your control notification handler code here
SetPrivilege(); //获得权限,与程序本身无关
int addr=0x00606E70;
HWND hwnd=::FindWindow(NULL,"诛仙");
DWORD pid;
::GetWindowThreadProcessId(hwnd,&pid);
HANDLE handle=::OpenProcess(PROCESS_ALL_ACCESS,false,pid);
LPVOID callbase=::VirtualAllocEx(handle,NULL,0x8000,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE); //分配空间
if (callbase==NULL) MessageBox("申请空间失败");
if(!::WriteProcessMemory(handle,callbase,dazuo,0x8000,NULL)) MessageBox("写入进程失败"); //一直到这一步都没有出现错误
::CreateRemoteThread(handle,NULL,0,(LPTHREAD_START_ROUTINE)dazuo,NULL,0,NULL);
}
请大家赐教!
这是一条镜像帖。来源:北邮人论坛 / soft-design / #35501同步于 2009/8/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
找CALL 后的问题(菜鸟学做外挂)[求助]
lymickey
2009/8/29镜像同步30 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
跟上述一样,到了createremotethread之前都没问题,过了这句就让游戏异常退出。在dazuo下个断点是不会运行到这里的,因为dazuo函数是被注入到游戏进程的空间中去了,但调试的是并不是游戏进程而是MFC程序。
我不懂32位的汇编,不知道是不是汇编程序本身的问题,还有怎么看是带参数的CALL并且如何编写这些都不明白。请大牛赐教
【 在 FadeToBlack 的大作中提到: 】
: 你在注入后的dazuo下个断点,然后远程调用一下试试
: 等猫哥解答
还是没用....
首先我这句上CreateRemoteThread 设了一个断,等运行到此处找到
virtualloc自动分配的空间的基址(每次都不同)。
之后进入到OD中从基址的下面看到了注入的汇编程序,设断后便出现警告说这个断在游戏进程的内存范围之外。。。我没管它。
再在VC中继续F10,运行完CreateRemoteThread..之后应该会在OD下段处停下,但是没有。而是出现了"游戏异常退出“的问题....
郁闷~
【 在 FadeToBlack 的大作中提到: 】
: 我说是在诛仙里面下断,然后注入运行
: 不过既然你说参数,那可能就是参数的问题了。你把那个函数逆向一下看看呗
谁是猫哥啊?
【 在 windam 的大作中提到: 】
: 学做外挂都是找完美的游戏练手么= =b 囧也。。。
: p.s.估计猫哥不会解答这帖子的。。。= =b
囧啊囧,忘了
【 在 windam 的大作中提到: 】
: 学做外挂都是找完美的游戏练手么= =b 囧也。。。
: p.s.估计猫哥不会解答这帖子的。。。= =b