【破文标题】Notepad 脱壳
【破文作者】 lvcaolhx
【作者 邮箱hafiwu@sohu.com
【作者主页】
破解 工具】OllyDBG+汉化第三版
【破解平台】xp SP2
软件名称】Notepad
【软件大小】87.6k
【原版下载】
【保护方式】
【软件简介】
【破解声明】新手破解,无技术可言
------------------------------------------------------------------------
【破解过程】【详细过程】
  都是压缩壳。具体是哪些,暂时不认识,只知道一直用ESP定律,最终搞定:软件使用VB编写
    
  0042E645 >/$  55            push ebp                        ;   载入后停在这里, F8一次
  0042E646  |.  8BEC         mov ebp,esp                     ;  ESP定律
  0042E648  |.  81EC D401000>sub esp,1D4
  0042E64E  |.  53           push ebx
  0042E64F  |.  56           push esi
  
  f9 运行,断下后到这里:
  0042EDBF  |.- FFE0         jmp eax                         ; 跳到第2层
  0042EDC1  |>  5F           pop edi
  0042EDC2  |.  5E           pop esi
  F8进入第二层:
  00424DEC    9C             pushfd                          ; 
  00424DED    60             pushad                          ;看到这个知到了第2层,先取消硬件 断点再用ESP
  00424DEE    E8 00000000    call notepad.00424DF3
  00424DF3    5D             pop ebp
  00424DF4    83ED 07        sub ebp,7
  00424DF7    8D8D F0FEFFFF  lea ecx,dword  ptr ss:[ebp-110]
  f9运行,断下后到这里:
  0042505E  ^\E9 9EAFFFFF    jmp notepad.00420001   跳到第3层
  00425063    8BB5 7CFEFFFF  mov esi,dword ptr ss:[ebp-184]
  00425069    0BF6           or esi,esi
  0042506B    0F84 97000000  je notepad.00425108
  F8进入第3层
  00420001    60             pushad                          ; 熟悉吧!第3层了,F8
  00420002    E8 03000000    call notepad.0042000A           ;先取消硬件断点再用ESP
  00420007  - E9 EB045D45    jmp 459F04F7
  0042000C    55             push ebp
f9运行,断下后到这里:
  004203B0   /75 08          jnz short notepad.004203BA
  004203B2   |B8 01000000    mov eax,1
  004203B7   |C2 0C00        retn 0C
  004203BA   \68 A0EB4100    push notepad.0041EBA0
  004203BF    C3             retn
  F8运行到第4层:
  0041EBA0    60             pushad                          ; 太熟悉了!第4层
  0041EBA1    BE 00704100    mov esi,notepad.00417000        ; 先取消硬件断点再用ESP
  0041EBA6    8DBE 00A0FEFF  lea edi,dword ptr ds:[esi+FFFEA>
  0041EBAC    57             push edi
  0041EBAD    83CD FF        or ebp,FFFFFFFF
  0041EBB0    EB 10          jmp short notepad.0041EBC2
  0041EBB2    90             nop
  0041EBB3    90             nop
f9运行,断下后到这里:
  0041ED27    8D4424 80      lea eax,dword ptr ss:[esp-80]   ; 
  0041ED2B    6A 00          push 0                          ; F8
  0041ED2D    39C4           cmp esp,eax
  0041ED2F  ^ 75 FA          jnz short notepad.0041ED2B
  0041ED31    83EC 80        sub esp,-80                      F4
  0041ED34  ^ E9 1724FEFF    jmp notepad.00401150            ;F8跳向最后一层
  0041ED39    0000           add  byte ptr ds:[eax],al
  0041ED3B    0000           add byte ptr ds:[eax],al
  
  来到 程序OEP:
  00401150    68 6C124000    push notepad.0040126C           明显是VB的。用OD插件DUMP脱掉,运行成功,
  收工啦!领工资去
  00401155    E8 F0FFFFFF    call notepad.0040114A           ; jmp to MSVBVM60.ThunRTMain
  经典的2句,VB的OEP,不要再F8了,不然,嘿嘿!!!!!完蛋
  0040115A    0000           add byte ptr ds:[eax],al
  0040115C    0000           add byte ptr ds:[eax],al
  0040115E    0000           add byte ptr ds:[eax],al
  
  

------------------------------------------------------------------------
【破解总结】用ESP后,要注意代码,不要F8过头了
俺就是这一类菜鸟!!
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!版权归PYG所有