首页
社区
课程
招聘
[讨论]一段迷糊代码,我倒下了
发表于: 2010-11-21 23:53 5352

[讨论]一段迷糊代码,我倒下了

2010-11-21 23:53
5352
这段代码把 edi,esi 变来变去做什么,看不明白,哪位帮忙看看!!

参数2个:

00435310  /$  56            push    esi
00435311  |.  57            push    edi
00435312  |.  8B7C24 0C     mov     edi, dword ptr [esp+C]
00435316  |.  85FF          test    edi, edi 取参数
00435318  |.  7C 5B         jl      short 00435375
0043531A  |.  8B7424 10     mov     esi, dword ptr [esp+10]
0043531E  |.  85F6          test    esi, esi 取参数
00435320  |.  7C 53         jl      short 00435375

开始:

00435322  |.  B8 89888888   mov     eax, 88888889                    是除以 1e  么?
00435327  |.  F7EF          imul    edi
00435329  |.  03D7          add     edx, edi         这句干嘛用的?为为什么是加(add),而下面那段时减(sub),
0043532B  |.  C1FA 04       sar     edx, 4
0043532E  |.  8BC2          mov     eax, edx
00435330  |.  C1E8 1F       shr     eax, 1F
00435333  |.  03C2          add     eax, edx
00435335  |.  8BD0          mov     edx, eax
00435337  |.  C1E2 04       shl     edx, 4
0043533A  |.  2BD0          sub     edx, eax
0043533C  |.  03D2          add     edx, edx
0043533E  |.  53            push    ebx
0043533F  |.  8BDA          mov     ebx, edx
00435341  |.  B8 77777777   mov     eax, 77777777     是除以 什么啊?
00435346  |.  F7EE          imul    esi
00435348  |.  2BD6          sub     edx, esi                   这句干嘛用的?为为什么是减(sub),而上面那段时加(add)
0043534A  |.  C1FA 04       sar     edx, 4
0043534D  |.  8BC2          mov     eax, edx
0043534F  |.  C1E8 1F       shr     eax, 1F
00435352  |.  03C2          add     eax, edx
00435354  |.  2BC3          sub     eax, ebx
00435356  |.  03C7          add     eax, edi
00435358  |.  8BD0          mov     edx, eax
0043535A  |.  C1E2 04       shl     edx, 4
0043535D  |.  2BD0          sub     edx, eax
0043535F  |.  8D0456        lea     eax, dword ptr [esi+edx*2]
00435362  |.  69C0 880A0000 imul    eax, eax, 0A88
00435368  |.  8B8408 A42829>mov     eax, dword ptr [eax+ecx+2928A4]  ;  取基址  ecx 可以认为固定:00815618
0043536F  |.  5B            pop     ebx
00435370  |.  5F            pop     edi
00435371  |.  5E            pop     esi
00435372  |.  C2 0800       retn    8

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
你光贴出这个,的确很难让人明白.  一开始只是检测一下ESI的值是否为0..后面的代码开起来实在解密什么,然后用做一个索引值?当作数组的行或者列来进行读取?
2010-11-22 00:58
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这段代码好熟悉,记得龙之谷里面的某个过程似乎和这个很像啊
2010-11-22 10:11
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
4
常来的都知道这是除法被最佳化了

麻烦:= [(edi mod 1E) - (esi div 1E)] * 0F * A88
ret ( ecx[2928A4][麻烦] )

可见楼主不常来
2010-11-22 10:48
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
除法被最佳化 是什么意思啊?这段代码是取怪物编号(可能是,因为+64是怪物血)
2010-11-22 11:43
0
雪    币: 251
活跃值: (77)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
我来看看瞧。什么怪物
2010-11-22 15:09
0
雪    币: 251
活跃值: (77)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
囧。。看不懂。。
提个建议。。
在草稿纸上完整的跟踪3、4次数据的运算。把算术过程记录下来看看。貌似这样的东西没有什么技术含量。纯体力活
2010-11-22 15:23
0
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
S大,果然犀利啊....我也常来的啊,怎么一眼就没看出来呢.!
2010-11-22 15:23
0
雪    币: 952
活跃值: (1821)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
应该就是stl::vector
2010-11-22 15:25
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
sessiondiy  的提示太好了,谢谢谢谢了 接近目标了   不过给的结果是错误的!!!!
2010-11-22 16:25
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=sessiondiy;893104]常来的都知道这是除法被最佳化了

麻烦:= [(edi mod 1E) - (esi div 1E)] * 0F * A88
ret ( ecx[2928A4][麻烦] )

可见楼主不常来[/QUOTE]

我常来而S哥不常现身,叫我怎么懂。
2010-11-22 17:43
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
00435341  |.  B8 77777777   mov     eax, 77777777
00435346  |.  F7EE          imul    esi
00435348  |.  2BD6          sub     edx, esi                      这句干嘛用的?
0043534A  |.  C1FA 04       sar     edx, 4                         这句是圆整么?
0043534D  |.  8BC2          mov     eax, edx
0043534F  |.  C1E8 1F       shr     eax, 1F
00435352  |.  03C2          add     eax, edx

这段代码也是除法么? 下面这句干嘛用的  00435348  |.  2BD6          sub     edx, esi
2010-11-22 18:05
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
发重了,不好意思
2010-11-22 18:05
0
游客
登录 | 注册 方可回帖
返回
//