能力值:
( LV2,RANK:10 )
|
-
-
2 楼
还有,这段代码:
0041135A |> \8D045B lea eax, dword ptr ds:[ebx+ebx*2]
0041135D |. 8B4CC6 04 mov ecx, dword ptr ds:[esi+eax*8+4]
00411361 |. 8D44C6 04 lea eax, dword ptr ds:[esi+eax*8+4]
00411365 |. 3BCA cmp ecx, eax
00411367 |. 74 22 je short elementc.0041138B
这是不是摆明了非跳不可?
这段代码应该如何理解?
|
能力值:
(RANK:410 )
|
-
-
3 楼
最初由 helinze 发布 还有,这段代码:
0041135A |> \8D045B lea eax, dword ptr ds:[ebx+ebx*2] 0041135D |. 8B4CC6 04 mov ecx, dword ptr ds:[esi+eax*8+4] 00411361 |. 8D44C6 04 lea eax, dword ptr ds:[esi+eax*8+4] ........
你可以将他们想象成一个杯子,杯子里又装着水。
第一个操作mov ecx,dword ptr ds:[esi+eax*8+4]是将装有水的杯子里从杯子倒出来水来放到左手上。第二个操作lea eax,dword ptr ds:[esi+eax*8+4]是将装着水的那个杯子直接将杯子拿在右手里。左手是拿着水,右手是拿着杯子,他们的操作又怎会相同呢。
|
能力值:
(RANK:410 )
|
-
-
4 楼
当然,如果那个杯子装着的是他自己(电脑里可以这样做,在现实生活中可不能将自己装在自己里 )那么他们的结果就会相同了(但操作还是不一样),下面的比较就一定会跳了。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
楼主你用OD去调试3D大型游戏???我的天....有创意更有勇气..~
lea指令可以看成等价于add指令,只是速度比它更快,而且由于它不占用ALU.可以并发执行,所以是一条很爽的指令.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
呵呵,太深奥了
我调试了一下,把这个游戏必须通过另外一个更新、检查程序启动功能跳过了,
也就实现了双开。
关于上面这段代码,我实在不明白他的用意?
如果一定会跳到某处,为什么不直接跳,还要做个一定相同的比较才跳
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
最初由 小虾 发布 你可以将他们想象成一个杯子,杯子里又装着水。 第一个操作mov ecx,dword ptr ds:[esi+eax*8+4]是将装有水的杯子里从杯子倒出来水来放到左手上。第二个操作lea eax,dword ptr ds:[esi+eax*8+4]是将装着水的那个杯子直接将杯子拿在右手里。左手是拿着水,右手是拿着杯子,他们的操作又怎会相同呢。 感谢回复,我又学到了LEA 和 MOV的不同地方
您的解释很客观,很容易理解
谢谢您:)
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
最初由 指令CC 发布 楼主你用OD去调试3D大型游戏???我的天....有创意更有勇气..~
lea指令可以看成等价于add指令,只是速度比它更快,而且由于它不占用ALU.可以并发执行,所以是一条很爽的指令. 原来如此!!
感谢回复 我的第一个目标是做外 挂!哈哈
一步一步实现吧!目前能看一小部分代码了!(我是真菜鸟) 暴力破解了检查限制,实现了双开(我得意了一天,哈哈)
如果您有时间的话,可以指点我啊,我会很乐意学习的!
|
|
|