• 破解 keyme2程序(固定明码比较)


    系统 : Windows xp

    程序 : keyme2

    程序下载地址 :http://pan.baidu.com/s/1pKqlHiF

    要求 : 找出序列号

    使用工具 : IDA Pro & OD

    可在“PEDIY CrackMe 2007”中查找关于此程序的破文,标题为“一个很简单的crackme”。

    运行程序,发现这是一个没有图形用户界面的小程序,验证方式为输入序列号。使用IDA载入程序,在字符串表找出“ Try again! ”的位置,并定位判断算法关键位置。本程序中,用OD在00401622处下断点:

    0040161B  |.  C70424 003040>mov     dword ptr [esp], 00403000        ; |||ASCII "moofy's keyme #2",LF,"Very simple :)",LF,LF,"Enter: "
    00401622  |.  E8 A9050000   call    <jmp.&msvcrt.printf>             ; ||printf
    00401627  |.  8D45 FC       lea     eax, dword ptr [ebp-4]           ; ||
    0040162A  |.  894424 04     mov     dword ptr [esp+4], eax           ; ||
    0040162E  |.  C70424 293040>mov     dword ptr [esp], 00403029        ; ||ASCII "%d"
    00401635  |.  E8 86050000   call    <jmp.&msvcrt.scanf>              ; |scanf
    0040163A  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ; |
    0040163D  |.  3B05 24414000 cmp     eax, dword ptr [404124]          ; |
    00401643  |.  75 0E         jnz     short 00401653                   ; |
    00401645  |.  C70424 2C3040>mov     dword ptr [esp], 0040302C        ; |ASCII LF,"Correct :) Write a keygen and tutorial and submit it to crackmes.de",LF
    0040164C  |.  E8 7F050000   call    <jmp.&msvcrt.printf>             ; printf
    00401651  |.  EB 0C         jmp     short 0040165F
    00401653  |>  C70424 723040>mov     dword ptr [esp], 00403072        ; |ASCII 0A,"Try again!"
    0040165A  |.  E8 71050000   call    <jmp.&msvcrt.printf>             ; printf
    0040165F  |>  C70424 7F3040>mov     dword ptr [esp], 0040307F        ; |ASCII "PAUSE"
    00401666  |.  E8 45050000   call    <jmp.&msvcrt.system>             ; system
    0040166B  |.  B8 00000000   mov     eax, 0
    00401670  |.  C9            leave
    00401671  .  C3            retn

    单步跟踪过一遍流程可知,程序将位于[404124]处的固定值作为程序的序列号,需要用户输入一个十进制的字串并与其对比。完全匹配即可。此处跟入内存发现其值为:10427410,转化为十进制则是:272790544。

    效果如下:

    我们一路奋战,不是为了改变世界,而是不让世界改变我们 ——《熔炉》
  • 相关阅读:
    Spring学习笔记(二)----Spring IOC
    LeetCode----正则表达式匹配「动态规划」
    Markdown----一款轻量级标记语言
    LeetCode----最长回文子串「动态规划」
    数据结构(六)
    数据结构(五)
    HDOJ3613解题报告【拓展KMP】
    HDOJ1358解题报告【KMP算法next数组的使用】
    POJ1990解题报告【树状数组】
    HDOJ1507解题报告【二分图染色】
  • 原文地址:https://www.cnblogs.com/ZRBYYXDM/p/5108934.html
Copyright © 2020-2023  润新知