飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5699|回复: 4

[原创] 花指令伪装壳 脱壳

[复制链接]

该用户从未签到

发表于 2007-10-20 16:56:51 | 显示全部楼层 |阅读模式
【文章标题】: 花指令伪装壳
【文章作者】: johnroot
【软件名称】: 三联ktv6.61单机版 主程序
【下载地址】: 自己搜索下载
【加壳方式】: 花指令伪装壳
【保护方式】: 花指令伪装壳
【编写语言】: VC
【使用工具】: OLLYDBG,ImportREC,WINHEX
【操作平台】: WIN32
【软件介绍】: 特殊的API加密
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  (伪装为PENinja -> +DZA Kracker/TNT! )脱壳
  OLLYDBG加载停在壳人口:
  00650000 >  90              NOP
  00650001    90              NOP
  00650002    90              NOP
  00650003    90              NOP
  00650004    90              NOP
  00650005    90              NOP
  00650006    90              NOP
  00650007    90              NOP
  
  CTRL+M 在 .data段下访问断点,F9断下:
  
  7FF7EBE4    66:3103         XOR WORD PTR DS:[EBX],AX
  7FF7EBE7    7A 03           JPE SHORT 7FF7EBEC   
  7FF7EBE9    7B 01           JPO SHORT 7FF7EBEC
  
  CTRL+M 在 .text段下访问断点,F9断下:
  7FF7F510    F2:66:AF        REPNE SCAS WORD PTR ES:[EDI]
  7FF7F513    72 03           JB SHORT 7FF7F518   
  
  CTRL+M 在 .data段下访问断点,F9断下:
  004F1EE1    830D 0C6B5400 F>OR DWORD PTR DS:[546B0C],FFFFFFFF
  004F1EE8    830D 106B5400 F>OR DWORD PTR DS:[546B10],FFFFFFFF
  
  往上找:
  
  004F1EAD    55              PUSH EBP                   这里就是OEP
  004F1EAE    8BEC            MOV EBP,ESP
  004F1EB0    6A FF           PUSH -1
  004F1EB2    68 60315200     PUSH 三联ktv6.00523160
  004F1EB7    68 3A204F00     PUSH 三联ktv6.004F203A                     ; JMP to msvcrt._except_handler3
  004F1EBC    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
  004F1EC2    50              PUSH EAX
  004F1EC3    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
  004F1ECA    83EC 68         SUB ESP,68
  004F1ECD    53              PUSH EBX
  004F1ECE    56              PUSH ESI
  004F1ECF    57              PUSH EDI
  004F1ED0    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
  004F1ED3    33DB            XOR EBX,EBX
  004F1ED5    895D FC         MOV DWORD PTR SS:[EBP-4],EBX
  004F1ED8    6A 02           PUSH 2
  004F1EDA    FF15 9C655100   CALL DWORD PTR DS:[51659C]               ; msvcrt.__set_app_type
  004F1EE0    59              POP ECX
  004F1EE1    830D 0C6B5400 F>OR DWORD PTR DS:[546B0C],FFFFFFFF
  004F1EE8    830D 106B5400 F>OR DWORD PTR DS:[546B10],FFFFFFFF
  
  DUMP下,OEP为 4F1EAD,ImportREC修复API显示全OK!
  
  运行脱了的程序,报4010AA内存读取错误!
  
  OLLYDBG 加载脱了的程序
  
  CTRL+G 到4010AA :
  004010AA    FF15 29DEF87F   CALL DWORD PTR DS:[7FF8DE29]             ; GDI32.CreateCompatibleDC
  
  看到有API地址变了,都到壳里去了,手动修复太累了,有200处!找其它办法。
  
  OLLYDBG 加载原主程序,4010AA处下内存写入断点,F9停在:
  
  7FF7EBE4    66:3103         XOR WORD PTR DS:[EBX],AX
  7FF7EBE7    7A 03           JPE SHORT 7FF7EBEC         F4运行到这里
  
  查看内存4010AA,下硬件写入断点byte,F9断在:
  7FF7F001    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
  7FF7F003    72 03           JB SHORT 7FF7F008          这里下硬件断点,F9断到着
  
  CTRL+G 到4010AA :
  004010AA    FF15 10605180   CALL DWORD PTR DS:[80516010]
  现在看到的是真实地址+$80000000
  
  查看内存4010AA,下硬件写入断点byte,F9断在:
  7FF7F001    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
  
  查看内存4010AE,下硬件写入断点byte,F9断在:
  7FF7F5DE   /74 03           JE SHORT 7FF7F5E3
  7FF7F5E0   |75 01           JNZ SHORT 7FF7F5E3
  7FF7F5E2  ^|75 83           JNZ SHORT 7FF7F567
  往上找:
  7FF7F5DC    8937            MOV DWORD PTR DS:[EDI],ESI  就是这里更换了地址:
  7FF7F5DE    74 03           JE SHORT 7FF7F5E3
  7FF7F5E0    75 01           JNZ SHORT 7FF7F5E3
  7FF7F5E2  ^ 75 83           JNZ SHORT 7FF7F567
  
  OLLYDBG重新加载主程序:
  
  7FF7F5DC    8937            MOV DWORD PTR DS:[EDI],ESI 这里nop掉
  7FF7F5DE    74 03           JE SHORT 7FF7F5E3
  7FF7F5E0    75 01           JNZ SHORT 7FF7F5E3
  7FF7F5E2  ^ 75 83           JNZ SHORT 7FF7F567
  
  用最开始的方法找OEP,DUMP,ImportREC修复API.
  
  用WINHEX打开,替换16进制(选择使用通配符:3F):
  FF153F3F5180 为 FF153F3F5100 (全部替换)
  
  运行修复好的程序,功能正常。
  
--------------------------------------------------------------------------------

                                                       2007年10月20日 16:57:59

评分

参与人数 1威望 +80 飘云币 +80 收起 理由
glts + 80 + 80 支持原创

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-6-6 15:51
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-10-20 18:05:57 | 显示全部楼层
    这软件不怎么好,但这套系统的歌库倒还不错的/:09
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    前天 08:56
  • 签到天数: 1837 天

    [LV.Master]伴坛终老

    发表于 2007-10-20 20:36:54 | 显示全部楼层
    还不知道怎么用
    谢谢了
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-10-21 00:14:44 | 显示全部楼层
    不错,学习了,/:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-22 19:04:22 | 显示全部楼层
    多谢LZ分享
    学习中/:018
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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