吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5684|回复: 5
收起左侧

[分享] 菜鸟试脱Hmimys-Packer v1.0

[复制链接]
冷月孤心 发表于 2009-9-13 15:34
【文章标题】: 菜鸟试脱Hmimys-Packer v1.0
【文章作者】: 冷月孤心
【作者邮箱】: 55825450@qq.com
【作者主页】: 喜欢上吾爱破解 UNPACK 更喜欢小生我怕怕的破解练习
【作者QQ号】: 55825450
【软件名称】: 记事本
【软件大小】: 47.8K
【下载地址】: 自己搜索下载
【加壳方式】: Hmimys-Packer v1.0
【保护方式】: Hmimys-Packer v1.0压缩壳
【使用工具】: OllyDbg ImportREC LordPE
【软件介绍】: 拿记事本加壳自己试着脱
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  俺菜鸟,刚刚学了单步跟踪法,就用单步来脱,不对的地方还请大侠指教,俺会很快改正的。
  0101ADE0 >  E8 BA000000     CALL 0101AE9F                     //载入后是一个CALL,F7进入
  0101ADE5    0300            ADD EAX,DWORD PTR DS:[EAX]
  0101ADE7    0000            ADD BYTE PTR DS:[EAX],AL
  0101ADE9    0030            ADD BYTE PTR DS:[EAX],DH
  0101ADEB    0100            ADD DWORD PTR DS:[EAX],EAX
  0101ADED    0010            ADD BYTE PTR DS:[EAX],DL
  0101ADEF    0001            ADD BYTE PTR DS:[ECX],AL
  F7进入后来到这里F8单步向下走
  0101AE9F    5E              POP ESI                                  ; NOTEPAD.0101ADE5
  0101AEA0    83C6 64         ADD ESI,64
  0101AEA3    AD              LODS DWORD PTR DS:[ESI]
  0101AEA4    50              PUSH EAX
  0101AEA5    AD              LODS DWORD PTR DS:[ESI]
  0101AEA6    50              PUSH EAX
  0101AEA7    83EE 6C         SUB ESI,6C
  0101AEAA    AD              LODS DWORD PTR DS:[ESI]
  0101AEAB    50              PUSH EAX
  0101AEAC    AD              LODS DWORD PTR DS:[ESI]
  0101AEAD    50              PUSH EAX
  0101AEAE    AD              LODS DWORD PTR DS:[ESI]
  0101AEAF    50              PUSH EAX
  0101AEB0    AD              LODS DWORD PTR DS:[ESI]
  0101AEB1    50              PUSH EAX
  0101AEB2    AD              LODS DWORD PTR DS:[ESI]
  0101AEB3    50              PUSH EAX
  0101AEB4    E8 E7070000     CALL 0101B6A0
  0101AEB9    AD              LODS DWORD PTR DS:[ESI]
  0101AEBA    8BDE            MOV EBX,ESI
  0101AEBC    8BF0            MOV ESI,EAX
  0101AEBE    83C3 44         ADD EBX,44
  0101AEC1    AD              LODS DWORD PTR DS:[ESI]
  0101AEC2    85C0            TEST EAX,EAX
  0101AEC4    74 32           JE SHORT 0101AEF8
  0101AEC6    8BF8            MOV EDI,EAX
  0101AEC8    56              PUSH ESI
  0101AEC9    FF13            CALL DWORD PTR DS:[EBX]
  0101AECB    8BE8            MOV EBP,EAX
  0101AECD    AC              LODS BYTE PTR DS:[ESI]
  0101AECE    84C0            TEST AL,AL
  0101AED0  ^ 75 FB           JNZ SHORT 0101AECD        此处JNZ是向上跳的,不能让它往回走,在下句F4
  0101AED2    AC              LODS BYTE PTR DS:[ESI]    这里F4后继续F8向下走
  0101AED3    84C0            TEST AL,AL
  0101AED5  ^ 74 EA           JE SHORT 0101AEC1
  0101AED7    4E              DEC ESI
  0101AED8    AD              LODS DWORD PTR DS:[ESI]
  0101AED9    A9 00000080     TEST EAX,80000000
  0101AEDE    75 0B           JNZ SHORT 0101AEEB
  0101AEE0    83EE 04         SUB ESI,4
  0101AEE3    56              PUSH ESI
  0101AEE4    55              PUSH EBP
  0101AEE5    FF53 04         CALL DWORD PTR DS:[EBX+4]
  0101AEE8    AB              STOS DWORD PTR ES:[EDI]
  0101AEE9  ^ EB E2           JMP SHORT 0101AECD         此处JMP向上跳转的,根据单步的原理不能叫它向上走,但是在下面F4下断程序直接运行了
  0101AEEB    25 FFFFFF7F     AND EAX,7FFFFFFF           从这里到下面那个JMP都不能F4下断
  0101AEF0    50              PUSH EAX
  0101AEF1    55              PUSH EBP
  0101AEF2    FF53 04         CALL DWORD PTR DS:[EBX+4]
  0101AEF5    AB              STOS DWORD PTR ES:[EDI]
  0101AEF6  ^ EB DA           JMP SHORT 0101AED2         此处JMP也向上跳转的,根据单步的原理不能叫它向上走
  0101AEF8    83EB 44         SUB EBX,44                 在这里F4下断后继续F8向下走
  0101AEFB    8BF3            MOV ESI,EBX
  0101AEFD    AD              LODS DWORD PTR DS:[ESI]
  0101AEFE    50              PUSH EAX
  0101AEFF    C3              RETN                        跟踪到这里发现是一个大跨段跳转,应该跟踪过去就是程序OEP了
  OEP就是这里
  0100739D      6A            DB 6A                                    ;  CHAR 'j'
  0100739E      70            DB 70                                    ;  CHAR 'p'
  0100739F      68            DB 68                                    ;  CHAR 'h'
  010073A0      98            DB 98
  010073A1      18            DB 18
  010073A2      00            DB 00
  010073A3      01            DB 01
  010073A4      E8            DB E8
  010073A5      BF            DB BF
  010073A6      01            DB 01
  010073A7      00            DB 00
  010073A8      00            DB 00
  010073A9      33            DB 33                                    ;  CHAR '3'
  010073AA      DB            DB DB
  010073AB      53            DB 53                                    ;  CHAR 'S'
  010073AC      8B            DB 8B
  010073AD      3D            DB 3D                                    ;  CHAR '='
  010073AE      CC            DB CC
  010073AF      10            DB 10
  010073B0      00            DB 00
  010073B1      01            DB 01
  010073B2      FF            DB FF
  010073B3      D7            DB D7
  010073B4      66            DB 66                                    ;  CHAR 'f'
  010073B5      81            DB 81
  010073B6      38            DB 38                                    ;  CHAR '8'
  010073B7      4D            DB 4D                                    ;  CHAR 'M'
  010073B8      5A            DB 5A                                    ;  CHAR 'Z'
  从模块删除分析是这样的
  0100739D    6A 70           PUSH 70
  0100739F    68 98180001     PUSH 01001898
  010073A4    E8 BF010000     CALL 01007568
  010073A9    33DB            XOR EBX,EBX
  010073AB    53              PUSH EBX
  010073AC    8B3D CC100001   MOV EDI,DWORD PTR DS:[10010CC]           ; kernel32.7C80B731
  010073B2    FFD7            CALL EDI
  010073B4    66:8138 4D5A    CMP WORD PTR DS:[EAX],5A4D
  010073B9    75 1F           JNZ SHORT 010073DA
  010073BB    8B48 3C         MOV ECX,DWORD PTR DS:[EAX+3C]
  010073BE    03C8            ADD ECX,EAX
  010073C0    8139 50450000   CMP DWORD PTR DS:[ECX],4550
  010073C6    75 12           JNZ SHORT 010073DA
  010073C8    0FB741 18       MOVZX EAX,WORD PTR DS:[ECX+18]
  010073CC    3D 0B010000     CMP EAX,10B
  在0100739D用LordPE修正映像大小,然后完整转存,转存后程序无法打开,用ImportREC修复输入表
  
--------------------------------------------------------------------------------


                                                       2009年09月13日 15:22:37

脱壳前和脱壳后的打包.rar

87.63 KB, 下载次数: 23, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 1威望 +1 收起 理由
Hmily + 1 欢迎讨论交流,[吾爱破解]有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 冷月孤心 发表于 2009-9-13 15:41
感谢小生我怕怕的破解练习全集,从中我学了单步跟踪,算是一份作业吧,完成的不是很好。
llight 发表于 2009-9-13 15:54
aref 发表于 2009-9-13 16:50
qnbs1 发表于 2009-9-13 16:55
呵呵。单步跟踪法还是很简单的。。。支持楼主。。加油
转身 发表于 2009-9-13 17:34
本帖最后由 转身 于 2009-9-13 17:40 编辑

最后修复那一步不会哦,楼主说的练习,是在http://www.52pojie.cn/viewthread.php?tid=11642&extra=&page=1 这里么
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-28 11:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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