飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7868|回复: 23

[讨论] 一款明码比较的软件修改方法

  [复制链接]
  • TA的每日心情
    郁闷
    2018-1-26 16:44
  • 签到天数: 149 天

    [LV.7]常住居民III

    发表于 2014-11-28 00:00:32 | 显示全部楼层 |阅读模式
    一个小软件引来各位大神的参与,让破解不再只是一个“恭喜你,注册成功!”,多了几分交流,这才是意义所在。
    破解软件不是目的,只是脚下的台阶,我们要的是技术。
    这个基本情况:
    主程序无壳,明码比对,有字符串可查,配置信息加密保存。
    主要爆破流程:
    搜索字符串,
    1.JPG


    2.jpg



    3.jpg

    想法是:用真码去覆盖假码,进而注册成功
    0040396B  |.  FF15 8C464100 CALL    DWORD PTR DS:[<&MSVCRT._mbscmp>]
    00403971  |.  83C4 14       ADD     ESP, 14
    修改如下:
    0040396B   . /E9 20F70000              JMP     00413090                         ;  00413090
    00403970     |90                       NOP
    00403971   > |83C4 14                  ADD     ESP, 14

    Small-Q的方法
    0x00413090:
    CMP     DWORD PTR SS:[ECX], 0
    JNZ     SHORT 004130A1  这个跳转要根据实际情况写地址:指向下面的PUSH    EDX
    CALL    DWORD PTR DS:[41468C]
    JMP     00403971
    PUSH    EDX
    MOV     EDX, DWORD PTR SS:[EAX]
    MOV     DWORD PTR SS:[ECX], EDX
    MOV     EDX, DWORD PTR SS:[EAX+4]
    MOV     DWORD PTR SS:[ECX+4], EDX
    MOV     EDX, DWORD PTR SS:[EAX+8]
    MOV     DWORD PTR SS:[ECX+8], EDX
    MOV     EDX, DWORD PTR SS:[EAX+C]
    MOV     DWORD PTR SS:[ECX+C], EDX      
    MOV     EDX, DWORD PTR SS:[EAX+10]     
    MOV     DWORD PTR SS:[ECX+10], EDX
    MOV     BYTE PTR SS:[ECX+15], 0         
    POP     EDX                              
    CALL    DWORD PTR DS:[41468C]
    JMP     00403971
    这种方法首先判断S2是否为空,也就是说当真假码共同出现时才用真码覆盖假码,以免影响程序正常运行。
    是以edx 为中转,把真码通过4步覆盖假码。
    sgw888的方法:

    CMP     BYTE PTR DS:[ECX], 0                             
    JE      004130A9                                                                           
    PUSHAD                                                   
    PUSHFD                                                   
    MOV     ESI, EAX                                          
    MOV     EDI, ECX                                          
    MOV     ECX, 15                                          
    REP     MOVS BYTE PTR ES:[EDI], BYTE PTR DS:[ESI]         
    POPFD                                                     
    POPAD                                                     
    CALL    DWORD PTR DS:[41468C]                             
    JMP     00403971                                         
    sgw888的代码精简,但是像我等小白就不太容易理解了。首先给ecx 0x15h 即21 这是循环次数 rep 是循环命令。
    但是不知道为何最后交换完成的数据会到ecx,这里还请大牛指点。

    还有vipcrack的patch固定机器码和注册码。明天晚上再补上来。

    点评

    11楼附方法2、3、4  发表于 2015-2-28 16:49

    评分

    参与人数 2威望 +12 飘云币 +8 收起 理由
    零下八度 + 4 赞一个!完全看不懂,纯支持了~~
    GeekCat + 8 + 8 很给力!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-1-4 14:31
  • 签到天数: 73 天

    [LV.6]常住居民II

    发表于 2014-11-28 00:07:27 | 显示全部楼层
    沙发,占位顶起.
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 2046 天

    [LV.Master]伴坛终老

    发表于 2014-11-28 00:21:27 | 显示全部楼层
    这个要支持一下呀,学习了呀。。。。哈哈。。。。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2014-11-28 02:08:26 | 显示全部楼层
    很不错,
    支持
    学习了!!!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    昨天 10:03
  • 签到天数: 1425 天

    [LV.10]以坛为家III

    发表于 2014-11-28 08:07:08 | 显示全部楼层
    顶起来,膜拜
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    19 分钟前
  • 签到天数: 623 天

    [LV.9]以坛为家II

    发表于 2014-11-28 08:18:08 | 显示全部楼层

    顶起来学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-5-25 11:16
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2014-11-28 08:43:06 | 显示全部楼层
    本帖最后由 sgw888 于 2014-11-28 08:44 编辑

    rep movsb 指令解释:  首先 rep是循环前缀,不用多解释。 movsb 是字节传送指令,循环次数是由 ecx 这个寄存器来控制的,也就是传送多少次。

    指令执行的时候是把 DS:[ESI] 指向的内存复制( 按ECX指定的次数)个字节 到 ES:[EDI] 指向的内存。
    简单来讲就是内存复制,movsb是一次复制一字节,类似的指令还有 movsw,movsd,次数有ECX值来确定。
    前期的准备工作就是把 DS:ESI 跟ES:EDI 分别指向源内存地址跟目标内存地址。然后安全起见,再加一个 cld 指令,用于控制复制的方向。
    DF标志=0时,是按加的方向,DF=1时,按减的方向。 DF=0,每复制一次,ESI,EDI加1(或+2,+4),DF=1,每复制一次,ESI,EDI减1(或-2,-4)。

    评分

    参与人数 2威望 +8 飘云币 +8 收起 理由
    JZL + 4 + 4 很给力!
    small-q + 4 + 4

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-3-10 20:59
  • 签到天数: 243 天

    [LV.8]以坛为家I

    发表于 2014-11-28 08:48:30 | 显示全部楼层
    学习一下了
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2018-1-26 16:44
  • 签到天数: 149 天

    [LV.7]常住居民III

     楼主| 发表于 2014-11-28 09:36:32 来自手机 | 显示全部楼层
    sgw888 发表于 2014-11-28 08:43
    rep movsb 指令解释:  首先 rep是循环前缀,不用多解释。 movsb 是字节传送指令,循环次数是由 ecx 这个寄 ...

    我应该是明白了,晚上再验证下。
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2018-1-26 16:44
  • 签到天数: 149 天

    [LV.7]常住居民III

     楼主| 发表于 2014-11-28 09:36:32 来自手机 | 显示全部楼层
    sgw888 发表于 2014-11-28 08:43
    rep movsb 指令解释:  首先 rep是循环前缀,不用多解释。 movsb 是字节传送指令,循环次数是由 ecx 这个寄 ...

    我应该是明白了,晚上再验证下。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表