看流星社区

 找回密码
 注册账号
查看: 3353|回复: 6

一个恐怖临时变量。。

[复制链接]

该用户从未签到

发表于 2011-12-12 22:44:36 | 显示全部楼层 |阅读模式
本帖最后由 Chigco.Orc 于 2011-12-12 22:48 编辑

1012EB3F    51              push ecx                                ; ecx=[060852C8]=00A9F4B8
1012EB40    8B55 08         mov edx,dword ptr ss:[ebp+0x8]
1012EB43    52              push edx                                ; NPC代码 edx=20000014 edx=2000008E
1012EB44    6A 00           push 0x0
1012EB46    A1 CCC52510     mov eax,dword ptr ds:[0x1025C5CC]
1012EB4B    50              push eax                                ; eax=07AC4C38
1012EB4C    8B4D E8         mov ecx,dword ptr ss:[ebp-0x18]        
1012EB4F    51              push ecx                              ;  一直变化着的值。我们的目标!!!  

1012EB50    E8 5B08F6FF     call 1008F3B0;   对话call

向上找。。。

1012EAC0    55              push ebp
1012EAC1    8BEC            mov ebp,esp
1012EAC3    6A FF           push -0x1
1012EAC5    68 F27A1D10     push fsplatfo.101D7AF2
1012EACA    64:A1 00000000  mov eax,dword ptr fs:[0]
1012EAD0    50              push eax
1012EAD1    83EC 0C         sub esp,0xC
1012EAD4    A1 50902410     mov eax,dword ptr ds:[0x10249050]
1012EAD9    33C5            xor eax,ebp
1012EADB    50              push eax
1012EADC    8D45 F4         lea eax,dword ptr ss:[ebp-0xC]
1012EADF    64:A3 00000000  mov dword ptr fs:[0],eax
1012EAE5    894D E8         mov dword ptr ss:[ebp-0x18],ecx  ;郁闷的临时变量。

快到达头部的位置找到。向上一层找吧。。

1011800D    8D4D F0         lea ecx,dword ptr ss:[ebp-0x10]         ; 0012F8B4
10118010    E8 ABC0F0FF     call 100240C0                  ; 好吧,应该是这个call返回的eax,进去看看 3
10118015    8BC8            mov ecx,eax
10118017    E8 A46A0100     call 1012EAC0                 ; 上面的代码都在这一层里。发现 mov ecx,eax 正是我们要的 2
1011801C    EB 54           jmp 10118072 ;返回的地方 1

进入 10118010 的 call内部去。

100240C0    55              push ebp
100240C1    8BEC            mov ebp,esp
100240C3    51              push ecx
100240C4    894D FC         mov dword ptr ss:[ebp-0x4],ecx
100240C7    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
100240CA    8B00            mov eax,dword ptr ds:[eax]
100240CC    8BE5            mov esp,ebp
100240CE    5D              pop ebp
100240CF    C3              retn

天杀的,又是上面的 ecx 传进来的。回去上一层。看看call之前的ecx。就在call前面一句写着。。

1011800D    8D4D F0         lea ecx,dword ptr ss:[ebp-0x10]         ; 0012F8B4


我想哭啊,还跑上去吗?我看到头部了,貌似还得再跑上一层。。
请问,我方向对吗?

该用户从未签到

发表于 2011-12-13 11:03:54 | 显示全部楼层
1012EB4B    50              push eax                                ; eax=07AC4C38
1012EB4C    8B4D E8         mov ecx,dword ptr ss:[ebp-0x18]        
1012EB4F    51              push ecx                              ;  一直变化着的值。我们的目标!!!   
1012EB50    E8 5B08F6FF     call 1008F3B0;   对话call

1012EAE5    894D E8         mov dword ptr ss:[ebp-0x18],ecx  ;郁闷的临时变量。
// 看这条,在这里下断,进游戏对话,断下后如果这里的ECX和
1012EB4F    51              push ecx   
这里的是一样,那就继续向上找,每次对比一下,就不会找错了。

该用户从未签到

 楼主| 发表于 2011-12-13 23:46:29 | 显示全部楼层
回复 2# 雨夜


    明白。。我去试试,谢谢啊。我试完继续反馈。

该用户从未签到

 楼主| 发表于 2011-12-14 00:16:23 | 显示全部楼层
本帖最后由 Chigco.Orc 于 2011-12-14 00:29 编辑

那好,第一次找对了。
在大牛所说的

1012EAE5    894D E8         mov dword ptr ss:[ebp-0x18],ecx  ;郁闷的临时变量。
// 看这条,在这里下断,进游戏对话,断下后如果这里的ECX和
1012EB4F    51              push ecx   


ecx 是一致的,我往上一层找,没错了。

那继续我之前的做法。往上一层走。

1011800D    8D4D F0         lea ecx,dword ptr ss:[ebp-0x10]         ; 0012F8B4
10118010    E8 ABC0F0FF     call 100240C0                  ; 好吧,应该是这个call返回的eax,进去看看 3
10118015    8BC8            mov ecx,eax
10118017    E8 A46A0100     call 1012EAC0                 ; 上面的代码都在这一层里。发现 mov ecx,eax 正是我们要的 2
1011801C    EB 54           jmp 10118072 ;返回的地方 1

进入 10118010 的 call内部去。

100240C0    55              push ebp
100240C1    8BEC            mov ebp,esp
100240C3    51              push ecx
100240C4    894D FC         mov dword ptr ss:[ebp-0x4],ecx
100240C7    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
100240CA    8B00            mov eax,dword ptr ds:[eax]
100240CC    8BE5            mov esp,ebp

100240CE    5D              pop ebp
100240CF    C3              retn

天杀的,又是上面的 ecx 传进来的。回去上一层。看看call之前的ecx。就在call前面一句写着。。

1011800D    8D4D F0         lea ecx,dword ptr ss:[ebp-0x10]         ; 0012F8B4

该用户从未签到

 楼主| 发表于 2011-12-14 00:28:24 | 显示全部楼层
找到头部吧。。。

发现:


10117EE0    55              push ebp
10117EE1    8BEC            mov ebp,esp
10117EE3    6A FF           push -0x1
10117EE5    68 3B631D10     push 101D633B
10117EEA    64:A1 00000000  mov eax,dword ptr fs:[0]
10117EF0    50              push eax
10117EF1    83EC 08         sub esp,0x8
10117EF4    A1 50902410     mov eax,dword ptr ds:[0x10249050]
10117EF9    33C5            xor eax,ebp
10117EFB    50              push eax
10117EFC    8D45 F4         lea eax,dword ptr ss:[ebp-0xC]
10117EFF    64:A3 00000000  mov dword ptr fs:[0],eax
10117F05    894D EC         mov dword ptr ss:[ebp-0x14],ecx
10117F08    8B4D EC         mov ecx,dword ptr ss:[ebp-0x14]
  ; 怀疑。
10117F0B    E8 B0D0F1FF     call 10034FC0           ;
10117F10    50              push eax   ;执行到这一句,发现 ecx 是我们要的值。那就进入  10117F0B call 查看

10117F0B call 内部


10034FC0 >  55              push ebp
10034FC1    8BEC            mov ebp,esp
10034FC3    51              push ecx
10034FC4    894D FC         mov dword ptr ss:[ebp-0x4],ecx
10034FC7    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
10034FCA    8378 18 00      cmp dword ptr ds:[eax+0x18],0x0
10034FCE    74 0A           je 0034FDA
10034FD0    8B4D FC         mov ecx,dword ptr ss:[ebp-0x4]
10034FD3    8B41 18         mov eax,dword ptr ds:[ecx+0x18]
10034FD6    EB 28           jmp 10035000
10034FD8    EB 26           jmp 10035000
10034FDA    8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
10034FDD    837A 1C 00      cmp dword ptr ds:[edx+0x1C],0x0
10034FE1    74 1B           je 10034FFE
10034FE3    8B45 FC         mov eax,dword ptr ss:[ebp-0x4]
10034FE6    8B48 1C         mov ecx,dword ptr ds:[eax+0x1C]
10034FE9    E8 D2FFFFFF     call 10034FC0
10034FEE    8B4D FC         mov ecx,dword ptr ss:[ebp-0x4]
10034FF1    8941 18         mov dword ptr ds:[ecx+0x18],eax
10034FF4    8B55 FC         mov edx,dword ptr ss:[ebp-0x4]
10034FF7    8B42 18         mov eax,dword ptr ds:[edx+0x18]

10034FFA    EB 04           jmp 10035000
10034FFC    EB 02           jmp 10035000
10034FFE    33C0            xor eax,eax
10035000    8BE5            mov esp,ebp
10035002    5D              pop ebp
10035003    C3              retn


可以断定是上一层的ecx吗?

就是。



10117F05    894D EC         mov dword ptr ss:[ebp-0x14],ecx
10117F08    8B4D EC         mov ecx,dword ptr ss:[ebp-0x14]
  ; 怀疑。

----------------------------------

我返回上一层的话,会无限断。。

该用户从未签到

发表于 2011-12-14 21:35:58 | 显示全部楼层
楼主我也正在找CALL的参数,但是遇到瓶颈了,找不到来源那个基址一直是【ESP+???】
求老师做个找参数基址的教程!!!

该用户从未签到

 楼主| 发表于 2011-12-16 15:25:09 | 显示全部楼层
还是无思路。 - -。。纠结的变量。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-19 16:19

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表