我在看这篇文章的时候,有几个问题不懂,想请教一下,下面的代码:
00440F2C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 把我们输入的内容送到EAX,我这里是“CCDebuger”
00440F2F |. BA 14104400 MOV EDX,CrackMe3.00441014 ; registered user
00440F34 |. E8 F32BFCFF CALL CrackMe3.00403B2C ; 关键,要用F7跟进去
00440F39 |. 75 51 JNZ SHORT CrackMe3.00440F8C ; 这里跳走就完蛋
...
00403B2F |. 89C6 MOV ESI,EAX ; 把EAX内我们输入的用户名送到 ESI
00403B31 |. 89D7 MOV EDI,EDX ; 把EDX内的数据“Registered User”送到EDI
00403B33 |. 39D0 CMP EAX,EDX ; 用“Registered User”和我们输入的用户名作比较
我觉得00403B2F |. 89C6 MOV ESI,EAX和
00403B31 |. 89D7 MOV EDI,EDX
的结果是将要相比较的字串的首地址传给了ESI和EDI,特别是EDI是应该敢肯定的了,因为传进去的EDX是通过 00440F2F |. BA 14104400 MOV EDX,CrackMe3.00441014 这句代码得到的值,而00441014 就是“Registered User”的首地址,那么CMP EAX,EDX这句比较的值是两个首地址那时绝对不可能相同的,怎么可能达到比较两个字符串是否相同的结果呢,希望斑竹解释一下
也不知道我的问题说明白了没有,诚惶诚恐!!!
顺便再问一个问题,我自己的OLLyDBG中象如下代码
MOV EDX,CrackMe3.00441014
只能显示为
MOV EDX, 00441014
是什么原因,怎么设置才能让他将CrackMe3.显示出来,谢谢
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法