一,纯肉眼跟踪法
先用CE搜索一下是谁在改写当前的血量
0048 |. 96 5C020000 MOV DWORD PTR DS:[ESI+25C],EDX
Dd esi+25c
向上找到头
004563A5 |. 8BF1 MOV ESI,ECX//ecx+25c
Dd ecx+25c
在头部F2下断,看返回地址
0057B924 . 8BC8 MOV ECX,EAX
Dd eax+25c
0057B903 |. 8B40 24 MOV EAX,DWORD PTR DS:[EAX+24]
Dd [eax+24]+25c
0057B900 /$ 8B41 08 MOV EAX,DWORD PTR DS:[ECX+8]
Dd [[ecx+8]+24]+25c
在上面的头部下断,
005747AF |. /EB 0D |JMP SHORT elementc.005747BE //返回在这里
005747A1 |. 8B4C85 1C |MOV ECX,DWORD PTR SS:[EBP+EAX*4+1C]
Dd [[[EBP+EAX*4+1C]+8]+24]+25c
……
假设EAX=0
Dd [[[EBP+1C]+8]+24]+25c
找到头部
0057473C |. 8B68 08 MOV EBP,DWORD PTR DS:[EAX+8]
Dd [[[[eax+8]+1C]+8]+24]+25c
00574736 |. 8BD9 MOV EBX,ECX
Dd [[[[[ecx+4]+8]+1C]+8]+24]+25c
004395D2 |> \\8B4D 5C MOV ECX,DWORD PTR SS:[EBP+5C]
Dd [[[[[[ebp+5c]+4]+8]+1C]+8]+24]+25c
找到头部
004394A4 |. 8BE9 MOV EBP,ECX
Dd [[[[[[ecx+5c]+4]+8]+1C]+8]+24]+25c
向上找
00438B82 |. 8BCD MOV ECX,EBP
往上找……很长,在头部
00438145 |. 8BE9 MOV EBP,ECX
Dd [[[[[[ecx+5c]+4]+8]+1C]+8]+24]+25c
返到上一级
0042C8AC |. 8B4D 1C MOV ECX,DWORD PTR SS:[EBP+1C]
Dd [[[[[[[ebp+1c]+5c]+4]+8]+1C]+8]+24]+25c
|Dd ; [[[[[[EBP+5c]+4]+8]+1C]+8]+24]+25c
走到头部
0042C7BB |. 8BE9 MOV EBP,ECX
Dd [[[[[[[ecx+1c]+5c]+4]+8]+1C]+8]+24]+25c
最后在
0042C6B9 |. 8BCF |MOV ECX,EDI
Dd [[[[[[[edi+1c]+5c]+4]+8]+1C]+8]+24]+25c
看了一下EDI的值,是009811A0这个就是基址,
Dd [[[[[[[009811A0+1c]+5c]+4]+8]+1C]+8]+24]+25c
根据XHY30同学们找的基址来对比
dd [[[[[009811A0+1c]+8]+1c]+8]+24]+25c
二,CE/OD配合查找法
1,先在CE里搜索到血值
下断HW 081423FC
0048 |. 96 5C020000 MOV DWORD PTR DS:[ESI+25C],EDX ; 写入血值 Dd esi+25c
Dd esi+25c
004563A5 |. 8BF1 MOV ESI,ECX
Dd ecx+25c
找到头部下断向上找
0057B924 . 8BC8 MOV ECX,EAX ;
Dd eax+25c
因为再向上找会找到数组和循环,所以老师在这里用CE里搜索ECX的值
在这里记录EAX的值,然后用CE查找
随便找一个值搜索一下
然后HR下断,09D58FF4 马上被断了下来
004745F0 /$ 8B49 1C MOV ECX,DWORD PTR DS:[ECX+1C]
004745F3 |. 33C0 XOR EAX,EAX
dd ecx+25c
dd [ecx+1c]+25c
然后找到ECX的值,用CE来搜索,这次只找到三个值,老师随便选了第二个
HR 09BE436C
00462B23 . 8B86 1C090000 MOV EAX,DWORD PTR DS:[ESI+91C]
00462B29 . 8B78 14 MOV EDI,DWORD PTR DS:[EAX+14]
dd [[eax+14]+1c]+25c
dd [[[esi+91c]+14]+1c]+25c
00462AA9 . 8BF1 MOV ESI,ECX
dd [[[ecx+91c]+14]+1c]+25c
找到头部下断,返到上级CALL
004395D2 |> \\8B4D 5C MOV ECX,DWORD PTR SS:[EBP+5C]
Dd [[[[[[ebp+5c]+4]+8]+1C]+8]+24]+25c
00439537 |. 84C0 TEST AL,AL
老师在这里下断
00439534 |. 8B4D 24 MOV ECX,DWORD PTR SS:[EBP+24]
dd [[[[ebp+24]+91c]+14]+1c]+25c
找到头部
004394A4 |. 8BE9 MOV EBP,ECX
dd [[[[ECX+24]+91c]+14]+1c]+25c
再返回上级
00438B82 |. 8BCD MOV ECX,EBP
dd [[[[EBP+24]+91c]+14]+1c]+25c
找到函数头部发现EBP也是上级的ECX
0042C8AC |. 8B4D 1C MOV ECX,DWORD PTR SS:[EBP+1C]
dd [[[[[EBP+1C]+24]+91c]+14]+1c]+25c
找到函数头部……很长……
00438145 |. 8BE9 MOV EBP,ECX
Dd [[[[[[ecx+5c]+4]+8]+1C]+8]+24]+25c
返回上级
0042C7BB |. 8BE9 MOV EBP,ECX
dd [[[[[ECX+1C]+24]+91c]+14]+1c]+25c
再返回上级
0042C8AC |. 8B4D 1C MOV ECX,DWORD PTR SS:[EBP+1C]
Dd [[[[[[[ebp+1c]+5c]+4]+8]+1C]+8]+24]+25c
找到头部
0042C7BB |. 8BE9 MOV EBP,ECX
Dd [[[[[[[ecx+1c]+5c]+4]+8]+1C]+8]+24]+25c
0042C794 |> \\8BCF MOV ECX,EDI
Dd [[[[[[[EDI+1c]+5c]+4]+8]+1C]+8]+24]+25c
0042C6E2 |. 8BF9 MOV EDI,ECX
找到头部
dd [[[[[ECX+1C]+24]+91c]+14]+1c]+25c
也是上级的ECX
00443F6A |> \\B9 A0119800 |MOV ECX,elementc.009811A0
dd [[[[[009811A0+1C]+24]+91c]+14]+1c]+25c
三,HR断点法(感谢COOE同学)
还是先用CE查找出血值写入地址,用OD附加
0048 |. 96 5C020000 MOV DWORD PTR DS:[ESI+25C],EDX
Dd esi+25c
查找ESI值的来源,HR 0857CE48
00439534 |. 8B4D 24 MOV ECX,DWORD PTR SS:[EBP+24]
dd [[ebp+24]+25C]
查找EBP来源,HR 03230D80,但是断不下来03230D80
向上找到头部
004394A4 |. 8BE9 MOV EBP,ECX
dd [[ECX+24]+25C]
再返回上级
00438B82 |. 8BCD MOV ECX,EBP
dd [[EBP+24]+25C]
找到函数头部发现EBP也是上级的ECX
dd [[ECX+24]+25C]
0042C8AC |. 8B4D 1C MOV ECX,DWORD PTR SS:[EBP+1C]
dd [[[EBP+1C]+24]+25C]
找到头部
0042C7BB |. 8BE9 MOV EBP,ECX
dd [[[ECX+1C]+24]+25C]
0042C794 |> \\8BCF MOV ECX,EDI
dd [[[EDI+1C]+24]+25C]
0042C6E2 |. 8BF9 MOV EDI,ECX
找到头部
dd [[[ECX+1C]+24]+25C]
也是上级的ECX
00443F6A |> \\B9 A0119800 |MOV ECX,elementc.009811A0
dd [[[009811A0+1C]+24]+25C]
四,直接内存访问法(感谢lfscomic)
首先是用CE查找到血值地址,然后看一下是谁在访问这个地址,
或者是在OD里下HR+当前血值地址
也就是说我们这次不是搜索谁在写入它,而只搜索谁在访问它
发现是004E705B MOV EDX,DWORD PTR DS:[ESI+25C]
dd [[[009811A0+1C]+24]+25C]
五,纯CE查找基址
搜索ESI的16进制值07C0DE98
搜索16进制EBP的值03230D80
搜索EBP的16进制值009811A0
最终得出结论
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务