• 拆解一个简单的KeyFile保护


    系统 : Windows xp

    程序 : abexcrackme3

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

    要求 : 伪造Keyfile

    使用工具 :IDA

    可在看雪论坛中查找关于此程序的破文:http://bbs.pediy.com/showthread.php?t=30192

     

    IDA载入程序,找出提示破解成功的字串“Yep, keyfile found!”并定位关键代码:

    CODE:00401000 ; =============== S U B R O U T I N E =======================================
    CODE:00401000
    CODE:00401000 ; Attributes: noreturn
    CODE:00401000
    CODE:00401000                 public start
    CODE:00401000 start           proc near
    CODE:00401000                 push    0               ; uType
    CODE:00401002                 push    offset Caption  ; "abex' 3rd crackme"
    CODE:00401007                 push    offset Text     ; "Click OK to check for the keyfile."
    CODE:0040100C                 push    0               ; hWnd
    CODE:0040100E                 call    MessageBoxA
    CODE:00401013                 push    0               ; hTemplateFile
    CODE:00401015                 push    80h             ; dwFlagsAndAttributes
    CODE:0040101A                 push    3               ; dwCreationDisposition
    CODE:0040101C                 push    0               ; lpSecurityAttributes
    CODE:0040101E                 push    0               ; dwShareMode
    CODE:00401020                 push    80000000h       ; dwDesiredAccess
    CODE:00401025                 push    offset FileName ; "abex.l2c"
    CODE:0040102A                 call    CreateFileA
    CODE:0040102F                 mov     ds:hFile, eax
    CODE:00401034                 cmp     eax, 0FFFFFFFFh
    CODE:00401037                 jz      short loc_401075
    CODE:00401039                 push    0               ; lpFileSizeHigh
    CODE:0040103B                 push    ds:hFile        ; hFile
    CODE:00401041                 call    GetFileSize
    CODE:00401046                 cmp     eax, 12h
    CODE:00401049                 jnz     short loc_401060
    CODE:0040104B                 push    0               ; uType
    CODE:0040104D                 push    offset aWellDone ; "Well done!"
    CODE:00401052                 push    offset aYepKeyfileFoun ; "Yep, keyfile found!"
    CODE:00401057                 push    0               ; hWnd
    CODE:00401059                 call    MessageBoxA
    CODE:0040105E                 jmp     short loc_401088
    CODE:00401060 ; ---------------------------------------------------------------------------
    CODE:00401060
    CODE:00401060 loc_401060:                             ; CODE XREF: start+49j
    CODE:00401060                 push    0               ; uType
    CODE:00401062                 push    offset aError   ; "Error"
    CODE:00401067                 push    offset aTheFoundFileIs ; "The found file is not a valid keyfile!"
    CODE:0040106C                 push    0               ; hWnd
    CODE:0040106E                 call    MessageBoxA
    CODE:00401073                 jmp     short loc_401088
    CODE:00401075 ; ---------------------------------------------------------------------------
    CODE:00401075
    CODE:00401075 loc_401075:                             ; CODE XREF: start+37j
    CODE:00401075                 push    0               ; uType
    CODE:00401077                 push    offset aError_0 ; "Error"
    CODE:0040107C                 push    offset aHmmmmmICanTFin ; "Hmmmmm, I can't find the file!"
    CODE:00401081                 push    0               ; hWnd
    CODE:00401083                 call    MessageBoxA
    CODE:00401088
    CODE:00401088 loc_401088:                             ; CODE XREF: start+5Ej
    CODE:00401088                                         ; start+73j
    CODE:00401088                 call    ExitProcess
    CODE:00401088 start           endp ; sp-analysis failed
    CODE:00401088

    程序查找一个Keyfile,文件名为“abex.l2c”,文件长度应为18字节,这样就可以通过验证。在abexcrackme3程序路径下新建文件,文件名为“abex.l2c”,用记事本打开并将内容设置为“012345678901234567”再运行abexcrackme3即可通过验证:

    我们一路奋战,不是为了改变世界,而是不让世界改变我们 ——《熔炉》
  • 相关阅读:
    【家庭记账本】Android开发日记(七)
    每日总结【2020/02/08】
    每日总结【2020/02/07】
    【家庭记账本】Android开发日记(六)
    每日总结【2020/02/06】
    【家庭记账本】Android开发日记(五)
    【iOS开发】 CoreText 使用教程:以创建一个简单的杂志应用为例
    用NSLogger代替NSLog输出调试信息
    iOS开发常用国外网站清单
    Xcode快捷键 2(转)
  • 原文地址:https://www.cnblogs.com/ZRBYYXDM/p/5136809.html
Copyright © 2020-2023  润新知