-
-
[讨论]第一题 WannaLOL解答
-
发表于: 2017-6-1 21:47 2136
-
函数位于LOC_4011F4位置,
分析
1.
.text:00401220 call _strlen
.text:00401225 cmp eax, 4
知道密码长度为4.
2.
.text:0040122F push 30h
.text:00401231 pop ecx
.text:00401232 cmp [ebp-1Ch], cl
.text:00401235 jz loc_4012CF
.text:0040123B cmp [ebp-1Bh], cl
.text:0040123E jz loc_4012CF
.text:00401244 cmp [ebp-1Ah], cl
.text:00401247 jz loc_4012CF
.text:0040124D cmp [ebp-19h], cl
.text:00401250 jz short loc_4012CF
知道 1到4位都不是0x30即字符的0.
3.
.text:00401252 cmp byte ptr [ebp-1Ch], 31h
.text:00401256 jnz short loc_4012CF
.text:00401258 cmp byte ptr [ebp-1Bh], 35h
.text:0040125C jnz short loc_4012CF
知道第一位为0x31,第二位为0x35,就是字符的1和5.
4.
.text:00401267 xor ax, 7
.text:0040126B movsx eax, byte ptr [ebp-1Ah]
.text:0040126F sub eax, ecx
.text:00401271 mov [ebp-4], eax
.text:00401274 movsx eax, byte ptr [ebp-1Ch]
.text:00401278 fild dword ptr [ebp-4]
.text:0040127B sub eax, ecx
.text:0040127D mov [ebp-4], eax
.text:00401280 movsx eax, byte ptr [ebp-1Bh]
.text:00401284 fild dword ptr [ebp-4]
.text:00401287 sub eax, ecx
.text:00401289 mov [ebp-4], eax
.text:0040128C fidiv dword ptr [ebp-4]
.text:0040128F movsx eax, byte ptr [ebp-19h]
.text:00401293 sub eax, ecx
.text:00401295 mov [ebp-4], eax
.text:00401298 fsubp st(1), st
.text:0040129A fimul dword ptr [ebp-4]
.text:0040129D fmul ds:flt_40711C
.text:004012A3 fstp dword ptr [ebp-4]
运算出第三和第四位为5和5来。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
- [求助]Android 8上面获取手机的序列号 5121
- [求助]关于Android 7.0调用系统so库的问题。 5163
- [讨论]第一题 WannaLOL解答 2137
- [求助]动态库JNI_OnUnload函数不调用的问题 10388