中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 看雪学院专区 > 加壳与脱壳
OllyDbg + ASProtect SKE 2.X +代码变形
作者:佚名 时间:2006-12-13 17:37 出处:pediy.com 责编:月夜寒箫
              摘要:OllyDbg + ASProtect SKE 2.X +代码变形
【破解作者】 SYSCOM
【使用工具】 Ollydbg1.10, LordPE,ImportREC1.65,PEid 0.93
【破解平台】 Windows XP SP1
【软件名称】 BetterJPEG 1, 4, 4, 0
【下载地址】 
http://www.betterjpeg.com/
【软件简介】 Edit JPEG photos 
【加壳方式】 ASProtect SKE 2.X 
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
(1) 用ollydbg 载入BetterJPEG.exe ,设置忽略所有异常。
    在命令栏输入
    BP GetVersion ,按 F9,看 STACK 返回 431EE4 ,在按 ALT+F9
    返回,主程式 ,往上看.....不远地方

431EB8-PUSH  EBP          <======= OEP 进入点
431EB9-MOV   EBP,ESP
431EBB-PUSH   -1 
.....
.....


(2)修正 Import  Table and .CODE  写入补丁 PATCH(1)
   先修正 9F4387-PUSH 9F43A4==>PUSH PATCH(1)+0x29 Offset Address   

//********************** Start of Code in Object BinaryCode **************
:00000000   mov edx, 00401000               ;主程式 Start address
:00000005   cmp byte ptr [edx], E8          ;判断是否为 call 指令
:00000008   jne 0000001E
:0000000A   mov eax, dword ptr [edx+01]
:0000000D   add eax, edx
:0000000F   add eax, 00000005                                 
:00000014   cmp eax, 00CD0000               ;判断是否为 call API 加密,进入点
:00000019   jne 0000001E
:0000001B   pushad                          ;保存所有暂存器
:0000001C   jmp edx
:0000001E   inc edx
:0000001F   cmp edx, 00461000               ;主程式 end address
:00000025   jbe 00000005
:00000027   jmp 00000027                    ;PATCH END
:00000029   mov ecx, 00461000               ;IAT   start address (解码返回进入点)
:0000002E   mov edx, dword ptr [ebp-0C]
:00000031   cmp dword ptr [ecx], edx
:00000033   jne 00000052
:00000035   mov dword ptr [00460800], ecx    ;暂存 Import Address
:0000003B   add esp, 0000023C
:00000041   popad                            ;取回所有暂存器
:00000042   mov ebx, dword ptr [00460800]    ;取出 Import Address
:00000048   mov dword ptr [edx+02], ebx      ;修正 Import Address 
:0000004B   mov word ptr [edx], 15FF         ;修正 CALL 
:00000050   jmp 0000001E
:00000052   add ecx, 00000004
:00000055   cmp ecx, 004616AC                ;IAT   End address
:0000005B   jl 00000031
:0000005D   jmp 0000005D 


(3)写入补丁 PATCH(2)

//********************** Start of Code in Object BinaryCode **************
:00000000  mov edx, 00401000                ;主程式 Start address
:00000005  cmp byte ptr [edx], E8           ;判断是否为 call 指令
:00000008  jne 00000030
:0000000A  mov eax, dword ptr [edx+01]
:0000000D  add eax, edx
:0000000F  add eax, 00000005
:00000014  cmp eax, 00401000                ;判断是否为 > 401000
:00000019  jb 00000030
:0000001B  cmp eax, 00461000                ;判断是否为 < 461000
:00000020  ja 00000030                                                 
:00000022  mov bx, word ptr [eax]
:00000025  cmp bx, 15FF                      ;判断是否为 call 指令
:0000002A  jne 00000030
:0000002C  mov [eax+01], 25                  ;修正 CALL =>JMP
:00000030  inc edx
:00000031  cmp edx, 00461000                 ;主程式 End address
:00000037  jne 00000005
:00000039  jmp 00000039

(4) PATCH 完后,Dump BetterJPEG_dump.exe

(5)run  BetterJPEG.exe 在用 ImportREC 抓出 Import
    并修复 kernel32,中一个无效指针,改为 GetProcAddress
    再修正,RestoreLastError ==>SetLastError  (98/XP/NT4/2003 相容)

(6)使用 lordPE DUMP 变形程式,MEMORY 区块
     并附加在 BetterJPEG_dump.exe,的后面

ADDRESS:        SIZE        SET
-----------------------------------
9D0000           32000       RWE
A64000           10000       RWE 
C80000            1000       RWE
D10000            1000       RWE
D30000            2000       RWE
D40000            2000       RWE
D50000            1000       RWE
D60000            1000       RWE
-----------------------------------

(7)修正 Route CHECK 

9F70CE-MOV  EAX,[EAX+34]    =>  9F70CE-NOP
9F70D1-CALL EAX             =>  9F70CF-NOP
9FD0D3-SUB  [EBP+C],EAX     =>  9F70D0-MOV   EAX,[ESP+58]  
9FD0D6-MOV  EAX,[ENP+C]     =>  9F70D4-SUB   EAX,5

(9)OK->TEST->RUN  BetterJPEG_dump.exe

  
附件:betterjpeg.part1.rar 

附件:betterjpeg.part2.rar

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有