能力值:
( LV2,RANK:10 )
|
-
-
701 楼
我是新手,很感谢楼主能写这样的文章
|
能力值:
( LV2,RANK:10 )
|
-
-
702 楼
http://bbs.pediy.com/showthread.php?s=&threadid=24703页面的第一个问题,我也感觉LZ说的很对,但是 最后CCDebuger说“原文章已改过了。是因为开始的时候用了字串参考的插件,导致大小写混乱”我不明白这句话什么意思,和这个问题什么联系 ,不明白,另外如果lz说的对 ,真正比较字符串的代码 在哪里,我是个初学者,希望指点下 ,谢谢了
|
能力值:
( LV2,RANK:10 )
|
-
-
703 楼
这个教程对初学者真的很好,支持
|
能力值:
( LV2,RANK:10 )
|
-
-
704 楼
看不懂啊郁闷了
|
能力值:
( LV2,RANK:10 )
|
-
-
705 楼
进入第二课 呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
706 楼
好东西,继续看下集!
|
能力值:
( LV2,RANK:10 )
|
-
-
707 楼
想问一下 要是没有错误提示窗口的程序又应该怎么分析呢?
希望可以帮忙解答下 谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
708 楼
好东西,顶!
|
能力值:
( LV2,RANK:10 )
|
-
-
709 楼
从基础的开始学!
|
能力值:
( LV2,RANK:10 )
|
-
-
710 楼
啊!好啊!谢谢!我兴奋的快哭了!
|
能力值:
( LV3,RANK:20 )
|
-
-
711 楼
有2处注释是否错了,见红色部分,困惑中。。。
们所看到的那些 PUSH EBX、 PUSH ESI 等都是调用子程序保存堆栈时用的指令,不用管它,按 F8 键一步步过来,我们只关心关键部分:
00403B2C /$ 53 PUSH EBX
00403B2D |. 56 PUSH ESI
00403B2E |. 57 PUSH EDI
00403B2F |. 89C6 MOV ESI,EAX ; 把EAX内我们输入的用户名送到 ESI
00403B31 |. 89D7 MOV EDI,EDX ; 把EDX内的数据“Registered User”送到EDI
00403B33 |. 39D0 CMP EAX,EDX ; 用“Registered User”和我们输入的用户名作比较
00403B35 |. 0F84 8F000000 JE CrackMe3.00403BCA ; 相同则跳
00403B3B |. 85F6 TEST ESI,ESI ; 看看ESI中是否有数据,主要是看看我们有没有输入用户名
00403B3D |. 74 68 JE SHORT CrackMe3.00403BA7 ; 用户名为空则跳
00403B3F |. 85FF TEST EDI,EDI
00403B41 |. 74 6B JE SHORT CrackMe3.00403BAE
00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4] ; 用户名长度送EAX
00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4] ; “Registered User”字串的长度送EDX00403B49 |. 29D0 SUB EAX,EDX ; 把用户名长度和“Registered User”字串长度相减
00403B4B |. 77 02 JA SHORT CrackMe3.00403B4F ; 用户名长度大于“Registered User”长度则跳
00403B4D |. 01C2 ADD EDX,EAX ; 把减后值与“Registered User”长度相加,即用户名长度
00403B4F |> 52 PUSH EDX
00403B50 |. C1EA 02 SHR EDX,2 ; 用户名长度值右移2位,这里相当于长度除以4
00403B53 |. 74 26 JE SHORT CrackMe3.00403B7B ; 上面的指令及这条指令就是判断用户名长度最少不能低于4
00403B55 |> 8B0E MOV ECX,DWORD PTR DS:[ESI] ; 把我们输入的用户名送到ECX
00403B57 |. 8B1F MOV EBX,DWORD PTR DS:[EDI] ; 把“Registered User”送到EBX
00403B59 |. 39D9 CMP ECX,EBX ; 比较
00403B5B |. 75 58 JNZ SHORT CrackMe3.00403BB5 ; 不等则完蛋
[LEFT][/LEFT]
红色部分,小弟有一下困惑:
1,ptr 应该是传递的一个地址吧?怎么变成了字符串长度?
2,dword 是把地址变为32位地址的意思吧?
3,小弟是新手,DS:[ESI-4]是取字符串低位地址(首地址)吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
712 楼
受益菲浅,学习了,谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
713 楼
如过做成电子书该有多好
|
能力值:
( LV2,RANK:10 )
|
-
-
714 楼
新手初学,相当感谢如此详细的教程
|
能力值:
( LV2,RANK:10 )
|
-
-
715 楼
很详细.坚决支持,期待系列续
|
能力值:
( LV2,RANK:10 )
|
-
-
716 楼
弄不明白,能在详细点吗
|
能力值:
( LV2,RANK:10 )
|
-
-
717 楼
恩,长时间没看,OD又不熟悉了,还是再来看一遍
|
能力值:
( LV2,RANK:10 )
|
-
-
718 楼
学习中,很详细,是初学者的好参考。
|
能力值:
( LV2,RANK:10 )
|
-
-
719 楼
简单的例子最容易说明道理,对新手很有用,谢谢了!
|
能力值:
( LV2,RANK:10 )
|
-
-
720 楼
简单的例子最容易说明道理,对新手很有用,谢谢了!
|
能力值:
( LV2,RANK:10 )
|
-
-
721 楼
谢谢,今天要一口气把ollydbg学会
|
能力值:
( LV2,RANK:10 )
|
-
-
722 楼
我也有个程序,提示“PLC通讯异常”,为什么查找不到这个字符串?连“PLC”都查不到,请问问题可能出在哪里,还可以通过什么方法查找?
|
能力值:
( LV2,RANK:10 )
|
-
-
723 楼
00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4] ; 用户名长度送EAX
00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4] ; “Registered User”字串的长度送EDX
我是个新手,在学习过程中,对这条指令的解释不太理解!请指教!
|
能力值:
( LV2,RANK:10 )
|
-
-
724 楼
00403B2C /$ 53 PUSH EBX
00403B2D |. 56 PUSH ESI
00403B2E |. 57 PUSH EDI
00403B2F |. 89C6 MOV ESI,EAX ; 把EAX内我们输入的用户名送到 ESI
00403B31 |. 89D7 MOV EDI,EDX ; 把EDX内的数据“Registered User”送到EDI
00403B33 |. 39D0 CMP EAX,EDX ; 用“Registered User”和我们输入的用户名作比较00403B35 |. 0F84 8F000000 JE CrackMe3.00403BCA ; 相同则跳
00403B3B |. 85F6 TEST ESI,ESI ; 看看ESI中是否有数据,主要是看看我们有没有输入用户名
00403B3D |. 74 68 JE SHORT CrackMe3.00403BA7 ; 用户名为空则跳
00403B3F |. 85FF TEST EDI,EDI
00403B41 |. 74 6B JE SHORT CrackMe3.00403BAE
00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4] ; 用户名长度送EAX
00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4] ; “Registered User”字串的长度送EDX
00403B49 |. 29D0 SUB EAX,EDX ; 把用户名长度和“Registered User”字串长度相减
00403B4B |. 77 02 JA SHORT CrackMe3.00403B4F ; 用户名长度大于“Registered User”长度则跳
00403B4D |. 01C2 ADD EDX,EAX ; 把减后值与“Registered User”长度相加,即用户名长度
00403B4F |> 52 PUSH EDX
00403B50 |. C1EA 02 SHR EDX,2 ; 用户名长度值右移2位,这里相当于长度除以4
00403B53 |. 74 26 JE SHORT CrackMe3.00403B7B ; 上面的指令及这条指令就是判断用户名长度最少不能低于4
00403B55 |> 8B0E MOV ECX,DWORD PTR DS:[ESI] ; 把我们输入的用户名送到ECX
00403B57 |. 8B1F MOV EBX,DWORD PTR DS:[EDI] ; 把“Registered User”送到EBX
00403B59 |. 39D9 CMP ECX,EBX ; 比较
00403B5B |. 75 58 JNZ SHORT CrackMe3.00403BB5 ; 不等则完蛋
请问下,我的理解是两个比较是重复的,不知道我的理解是否正确的,在分析中,让我觉得有点乱?为什么要比较两次呢,请指教!
|
能力值:
( LV2,RANK:10 )
|
-
-
725 楼
非常详细,学习了
|
|
|