飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10453|回复: 28

[原创] 最简单的NAG去除术

[复制链接]

该用户从未签到

发表于 2007-12-24 15:47:44 | 显示全部楼层 |阅读模式
【破文标题】最简单的NAG去除术
【破文作者】blitz
破解工具】OD,PEiD
【破解平台】WinXP SP2
【软件名称】ASCII及进制转换
【软件大小】483 KB
【原版下载】见附件
【保护方式】ASPack 2.12
【软件简介】破解者常用软件,顺手修改下,就是因为关闭时的NAG.
【破解声明】一些常见破解方式的应用.
------------------------------------------------------------------------
【破解过程】Peid检测 :ASPack 2.12 -> Alexey Solodovnikov

ESP轻松脱壳,顺便捎带下,熟悉者可跳过.

用OD载入,根据ESP定理,在第一句压栈操作后hr esp,本例操作,运行第一步后hr 0012ffa4.

F9运行,中断在0050D3B0   . /75 08         JNZ SHORT turns4.0050D3BA

F8单步到返回(retn)后即到程序入口点OEP.

可直接在0048D254点右键Dump.


用OD载入脱壳后的程序,选择OD的插件-超级字串-查找ASCII,在文本字串里找到"真的要退出?",双击来到相关代码.

0048B98F   .  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
0048B995   .  8B83 40030000 MOV EAX,DWORD PTR DS:[EBX+340]
0048B99B   .  E8 4401FBFF   CALL 2222.0043BAE4
0048B9A0   .  5B            POP EBX
0048B9A1   .  C3            RETN
0048B9A2      8BC0          MOV EAX,EAX
0048B9A4   .  53            PUSH EBX
0048B9A5      EB 1D         JMP SHORT 2222.0048B9C4
0048B9A7   .  6A 00         PUSH 0                       ; /Arg1 = 00000000
0048B9A9   .  66:8B0D C8B94>MOV CX,WORD PTR DS:[48B9C8]  ; |
0048B9B0   .  B2 03         MOV DL,3                     ; |
0048B9B2   .  B8 D4B94800   MOV EAX,2222.0048B9D4        ; |真的要退出?          //来到这一行了.
0048B9B7   .  E8 08D5F9FF   CALL 2222.00428EC4           ; \2222.00428EC4
0048B9BC   .  83F8 07       CMP EAX,7
0048B9BF   .  75 03         JNZ SHORT 2222.0048B9C4
0048B9C1   .  C603 00       MOV BYTE PTR DS:[EBX],0
0048B9C4   >  5B            POP EBX
0048B9C5   .  C3            RETN

我们往上看,因为程序的在OD的运行顺序是从上往下的(当然,除了执行了跳转或相关指令外),我们来关注下

0048B9A4   .  53            PUSH EBX

这一行.它的上边是

0048B9A1   .  C3            RETN
0048B9A2      8BC0          MOV EAX,EAX

retn把它上边的子程序都返回了,所以根据经验0048B9A4就是按钮"确定"的相关程序,而这一行就是子程序的开头.

因为人家把EBX压栈了,我们就从子程序的第二行

0048B9A5      8BD9          MOV EBX,ECX

修改代码,直接跳过此窗口.我们在压栈完后直接把下边的运算命令强跳到EBX出栈那一句,因为出栈后就返回了.

所以其结果是我们修改0048B9A5的内容为JMP SHORT 0048B9C4

我看很多人直接JMP到RETN上,我试了好多次,都会引起程序出错.所以还是有进(PUSH)有出(POP)保险.



------------------------------------------------------------------------
【破解总结】修改的关键,在于找到正确的子程序开头和正确地修改跳转.

希望各初学者可以理解,高手指教!
------------------------------------------------------------------------
【版权声明】转载请注明来自PYG.

最简单的NAG去除术.rar

339.57 KB, 下载次数: 125, 下载积分: 飘云币 -2 枚

评分

参与人数 1威望 +40 飘云币 +80 收起 理由
野猫III + 40 + 80 感谢您发布的原创作品!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2024-12-18 14:23
  • 签到天数: 124 天

    [LV.7]常住居民III

    发表于 2007-12-24 16:57:25 | 显示全部楼层
    学习一下啊/:014 不错啊   谢谢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-24 18:14:10 | 显示全部楼层
    :loveliness: 新手学习了 照着来一次
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-25 08:45:18 | 显示全部楼层
    下载学习,谢谢分享。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-25 19:39
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-12-25 22:23:17 | 显示全部楼层
    自己测试下!
    Peid检测 :ASPack 2.12 -> Alexey Solodovnikov
    用AspackDie直接脱壳!
    OD载入插件-超级字串-查找ASCII,在文本字串里找到"真的要退出?",双击来到相关代码.
    0048B9A7   .  6A 00         PUSH 0                                   ; /Arg1 = 00000000                                                        我将这里修改jmp0048B9C5
    0048B9A9   .  66:8B0D C8B94>MOV CX,WORD PTR DS:[48B9C8]             ; |
    0048B9B0   .  B2 03         MOV DL,3                                ; |
    0048B9B2   .  B8 D4B94800   MOV EAX,unpacked.0048B9D4               ; |真的要退出?
    0048B9B7   .  E8 08D5F9FF   CALL unpacked.00428EC4                  ; \unpacked.00428EC4
    0048B9BC   .  83F8 07       CMP EAX,7
    0048B9BF   .  75 03         JNZ SHORT unpacked.0048B9C4
    0048B9C1   .  C603 00       MOV BYTE PTR DS:[EBX],0
    0048B9C4   >  5B            POP EBX
    0048B9C5   .  C3            RETN

    如果直接将 0048B9A7  后修改  jmp   0048B9C5

    保存后可以运行!
    没有错误提示!
    不知道是什么原因,期待高手指点!

    [ 本帖最后由 lmg7005 于 2007-12-25 22:26 编辑 ]
    on.gif
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-12-26 08:36:48 | 显示全部楼层
    回5楼.
    0048B9A7   .  6A 00         PUSH 0                       ; /Arg1 = 00000000
    0048B9A9   .  66:8B0D C8B94>MOV CX,WORD PTR DS:[48B9C8]  ; |
    0048B9B0   .  B2 03         MOV DL,3                     ; |
    0048B9B2   .  B8 D4B94800   MOV EAX,2222.0048B9D4        ; |真的要退出?          //来到这一行了.
    0048B9B7   .  E8 08D5F9FF   CALL 2222.00428EC4           ; \2222.00428EC4

    几行应该是对弹出对话框CALL的参数设置.

    需要声明的是,文中的修改方式是我个人总结的,所以很可能不尽人意,但基本可以保证程序不出错.

    网上好多教程修改都是从子程序入口的.我在调试的过程中,不出栈操作的话很容易出错.

    谢谢指教!.

    [ 本帖最后由 blitz 于 2007-12-26 08:39 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-26 08:50:51 | 显示全部楼层
    谢谢分享,学习了。。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-10-14 20:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2007-12-26 09:07:24 | 显示全部楼层
    学习不少呀,我也照着来试试
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2019-7-5 06:17
  • 签到天数: 97 天

    [LV.6]常住居民II

    发表于 2007-12-26 11:01:49 | 显示全部楼层
    感谢!!学习了..
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    5 天前
  • 签到天数: 983 天

    [LV.10]以坛为家III

    发表于 2007-12-26 14:05:06 | 显示全部楼层
    感谢!!学习了../:good /:good
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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