外挂制作找CALL入门-之本人找CALL

 

'====================================
第一个 OD中断 bp send 中断截获数据包
截获发包数据可以知道每个动作都向服务器发送什么数据
注意此中断要求:调用模块WS2_32.dll
'==================================
在OD中分析
程序中有很多CALL,
不是哪个CALL都能调用的
{先要搞清楚,OD中领空的问题,一般有:程序领空,系统领空 CTR+F9 执行到程序结

束,而且也不是都能调用的(一般注释里面有 函数过程 来自0X00000000函数的调用)
有一个主进程。了解程序的结构 函数的位置,{尝试掉用主程序是不行的,也不知道

参数如何}
先运行程序,然后才能在内存中注入 调用
1。确定CALL是一个完整的函数
2。确定CALL是可调用的
3。确定CALL的参数问题
4。确定内存地址的正确可用。

'无参数传递时候
Sub Call_RunTO(dx As Single, dy As Single, dz As Single, dm As Long)
Dim asm As New clsASM
With asm                             '  asm
     .Pushad                         '  pushad   
     .Mov_EBX &H42ABF0               '  mov  eax, &H42abf0  ’带入这个里,更换地址就可以了
     .Call_EBX                       '  Call eax
     .Popad                          '  popad
     .Ret
End With                             '  end
asm.Run_ASM pid
End Sub


开始尝试:
第一次。
1。跟着写了个CALL
调用程序中的另一个窗口并显示
2。结果内存0X00000000 不能写。
第二次
仔细观察了例子。
查找为什么不能写的原因
(例子是能够写的)
‘=======================转向推荐的 2008。12。25
开始用自己的VB编的程序调用其中的CALL不成
改成网上推荐的 完美(国内版本)试
OD导入 有异常忽略
进入游戏后 准备好了(速度一定要快)
在OD中下断 BP SEND ,然后在游戏中按5 打做(要是速度慢了,断下来的可能不是这

个函数,因为断点是封包)。和游戏一直通信的。。
找了很久都找不到CALL 郁闷 直接要了个地址

在VB中编程 试下,就是能实现打坐的功能。。
郁闷呀 直接在OD中输入地址,找到哪个CALL
开始通过分析CALL 调用来找东西
又重新用OD导入游戏,有错误SHIFT+F9忽略 忽略
进入游戏后,
检查下,隔几秒断一次。-------------------------------------------------------------------
71A2428A >  8BFF            MOV EDI,EDI
71A2428C    55              PUSH EBP                                 ; ntdll.RtlLeaveCriticalSection
---------隔几秒
71A2428A >  8BFF            MOV EDI,EDI
71A2428C    55              PUSH EBP                                 ; elementc.008B4C0C
----连续
71A2428A >  8BFF            MOV EDI,EDI
71A2428C    55              PUSH EBP                                 ; ntdll.RtlLeaveCriticalSection
----隔小几秒
71A2428A >  8BFF            MOV EDI,EDI
71A2428C    55              PUSH EBP                                 ; ntdll.RtlLeaveCriticalSection
71A2428A >  8BFF            MOV EDI,EDI
‘-------------------------------------------------------------------------------------------------------------------
然后,准备好,下了断,马上进游戏,按下5
断在
71A2428A >  8BFF            MOV EDI,EDI
71A2428C    55              PUSH EBP                                 ; elementc.008B4C0C
二次跳出ws_32进入elementc
====================================
大大们介绍一般4-7次进入查找的CALL的范围
===================================
六次到这里。------------------------------
0044A0B2  |.  E8 D9100100   CALL elementc.0045B190
0044A0B7  |.  84C0          TEST AL,AL
0044A0B9  |.  75 03         JNZ SHORT elementc.0044A0BE
0044A0BB  |.  C2 0400       RETN 4
0044A0BE  |>  8A4424 04     MOV AL,BYTE PTR SS:[ESP+4]
0044A0C2  |.  84C0          TEST AL,AL
0044A0C4  |.  74 0A         JE SHORT elementc.0044A0D0  '这里有个跳转。
0044A0C6  |.  E8 05131700   CALL elementc.005BB3D0   ’---------就是这个地址
0044A0CB  |.  B0 01         MOV AL,1
0044A0CD  |.  C2 0400       RETN 4      '停留在这里 ,往上面找说明调用了上  面的CALL
这里要说明一下为什么是往上面而不是下面看,就是因为程序就是从上面执行下来的
一个CALL调用后,一直往下走的,然后 RETN返回调用CALL的入口。
0044A0D0  |>  E8 3B131700   CALL elementc.005BB410  ‘-----------这个是站起来的地址
根据介绍,就找到了地址,(已经知道的地址就是容易找到)
带入上面的地址,就可以完成了

你可能感兴趣的:(游戏,编程,c,服务器,vb,byte)