设为主页 | 加入收藏 | 繁體中文

OllyDBG 入门系列(二)-字串参考


  我们在上图中地点 00440F2C 处按 F2 键设个断点,如今我们按 F9 键,步伐已运行起来了。我在上面谁人编辑框中随便输入一下,如 CCDebuger,下面谁人编辑框我还保留为原来的“754-GFX-IER-954”,我们点一下谁人“Register now !”按钮,呵,OllyDBG 跳了出来,停息在我们下的断点处。我们看一下信息窗口,你应该发现了你刚才输入的内容了吧?我这里表现是如许:
  货仓 SS:[0012F9AC]=00D44DB4, (ASCII "CCDebuger")
  EAX=00000009
  上面的内存地点 00D44DB4 中便是我们刚才输入的内容,我这里是 CCDebuger。你可以在 货仓 SS:[0012F9AC]=00D44DB4, (ASCII "CCDebuger") 这条内容上左击选择一下,再点右键,在弹出菜单中选择“数据窗口中跟随数值”,你就会在下面的数据窗口中看到你刚才输入的内容。而 EAX=00000009 指的是你输入内容的长度。如我输入的 CCDebuger 是9个字符。如下图所示:


  如今我们来按 F8 键一步步分析一下:
  00440F2C |. 8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]          ; 把我们输入的内容送到EAX,我这里是“CCDebuger”
  00440F2F |. BA 14104400     MOV EDX,CrackMe3.00441014             ; ASCII "Registered User"
  00440F34 |. E8 F32BFCFF     CALL CrackMe3.00403B2C                ; 关键,要用F7跟进去
  00440F39 |. 75 51           JNZ SHORT CrackMe3.00440F8C           ; 这里跳走就完蛋
  当我们按 F8 键走到 00440F34 |. E8 F32BFCFF     CALL CrackMe3.00403B2C 这一句时,我们按一下 F7 键,进入这个 CALL,进去后光标停在这一句:


  我们所看到的那些 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”字串的长度送EDX
  00403B49 |. 29D0            SUB EAX,EDX                         ; 把用户名长度和“Registered User”字串长度相减
  00403B4B |. 77 02           JA SHORT CrackMe3.00403B4F          ; 用户名长度大于“Registered User”长度则跳
  00403B4D |. 01C2            ADD EDX,EAX                         ; 把减后值与“Registered User”长度相加,即用户名长度


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: