|
[原创]ASProtect 2.1x SKE + Delphi + Stolen Code
【破解作者】 SYSCOM 【使用工具】 Ollydbg1.10, LordPE,ImportREC 1.62 ,PEid 0.94 【破解平台】 Windows XP SP1 【软件名称】 MultiTranse 3.5.8 【下载地址】 Http://www.tialsoft.com/multitranse/ 【软件简介】 Online Translation Software 【加壳方式】 ASProtect SKE 2.X 【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家共享:) -------------------------------------------------------------------------------- (0) 用 PEid 0.94 检测为 ASProtect 2.1x SKE -> Alexey Solodovnikov (1) 用ollydbg 加载MultiTranse.exe ,按 ALT+O 设置异常 Memory Access Violation。 按 F9 , 会发生异常中断在地址 00BDB530 00BDB530-- MOV DWORD PTR DS:[EAX],12C5EC7F (2) 按 CTRL+B 搜索 83,C4,2C,5D,5F,5E,5B,C3 ,在 00BDA8C5 ,设硬件断点 00BDA8C5--E8 7ACEFFFF CALL 00BD7744 <= 设硬件断点 00BDA8CA--83C4 2C ADD ESP,2C 00BDA8CD--5D POP EBP 00BDA8CE--5F POP EDI 00BDA8CF--5E POP ESI 00BDA8D0--5B POP EBX 00BDA8D1--C3 RETN (3) 按 CTRL+F2 ,重新加载 ,按 ALT+O 忽略异常 Memory Access Violation。 按 F9 , 会发生硬件中断在地址 00BDA8C5 按 F7 STEP 走到 00BD77BE 00BD77BE--RETN <==== 返回到 00EA02CD => OEP 开始 00BD77BF--JMP SHORT 00BD77C2 00EA02CD--PUSH EBP <== OEP Start 00EA02CE--JMP 00EA0C22 00EA02D3--MOV DWORD PTR DS:[54B718],EAX 00EA02D8--ADD EAX,EBX (4) 按 CTRL+B 搜索 89,45,F0,B8,00,07,00,00 修改 00BE7097==>JMP 0054B060 00BE7092--33C0 XOR EAX,EAX 00BE7094--8945 F0 MOV DWORD PTR SS:[EBP-10],EAX 00BE7097--B8 00070000 MOV EAX,700 修改 ==>JMP 0054B060 (获得API返回 Patch) (5) 粘贴 Patch Code ,在 0054B000 空白区,CTRL+ Gray* 将 EIP=> 0054B000 准备取出正确 WIN32 API (6) 第一次,设 ESI=1 ,F2->中断设在 0054B05E,按 F9,使 5C0000 区块获得 IAT (乱序) (7) CTRL+ Gray* 将 EIP=>0054B0D0 ,F2->中断设在 0054B0F7,按 F9,在 5C0000 区块获得 IAT(排序) (8)COPY->IAT 5C0000 区块, 到文本文件 IAT.TXT ,利用编辑软件,例如 WinHex,UEdit32 将 IAT 中,各 DLL 中间,插入 00 00 00 00 区隔 ,完成后,再贴回 005C0000 (9) 第二次,设 ESI=2 ,F2->中断设在 0054B05E,按 F9,使 CODE 重新定位 IAT ADDRESS (10)Patch 完成后,Full_Dump ,然后运行 ImportREC 令 RVA=1C0000,SIZE= 868 ->Fix Dump 完成 90% 进度 API- Patch Code ======================================================================== 0054B000--BE 01000000 MOV ESI,1 ;ESI=1 取出API ,ESI=2 重新定位 API 0054B005--B8 00005C00 MOV EAX,MultiTra.005C0000 ;IAT 开始地址 0054B00A--A3 F4AF5400 MOV DWORD PTR DS:[54AFF4],EAX 0054B00F--BA 00104000 MOV EDX,MultiTra ;CODE 开始地址 0054B014--803A E8 CMP BYTE PTR DS:[EDX],0E8 ;是否 CALL ?? 0054B017--75 19 JNZ SHORT MultiTra.0054B032 0054B019--8B5A 01 MOV EBX,DWORD PTR DS:[EDX+1] 0054B01C--03DA ADD EBX,EDX 0054B01E--83C3 05 ADD EBX,5 0054B021--81FB 0000EA00 CMP EBX,0EA0000 ;是否 ASPR 解码地址?? 0054B027--75 2C JNZ SHORT MultiTra.0054B055 0054B029--60 PUSHAD 0054B02A--8925 F0AF5400 MOV DWORD PTR DS:[54AFF0],ESP 0054B030--FFE2 JMP EDX ;入ASPR 解码 0054B032--66:813A FF25 CMP WORD PTR DS:[EDX],25FF ;是否 JMP [XX]? 0054B037--75 1C JNZ SHORT MultiTra.0054B055 0054B039--8B5A 02 MOV EBX,DWORD PTR DS:[EDX+2] 0054B03C--81FB 08D25400 CMP EBX,MultiTra.0054D208 ;是否在 IAT 地址惯围 0054B042--72 11 JB SHORT MultiTra.0054B055 0054B044--81FB 08E25400 CMP EBX,MultiTra.0054E208 0054B04A--77 09 JA SHORT MultiTra.0054B055 0054B04C--8B1B MOV EBX,DWORD PTR DS:[EBX] 0054B04E--83FE 01 CMP ESI,1 ;ESI=1?? 0054B051--74 26 JE SHORT MultiTra.0054B079 0054B053--EB 4B JMP SHORT MultiTra.0054B0A0 0054B055--42 INC EDX ;计数器 +1 0054B056--81FA 00505400 CMP EDX,MultiTra.00545000 0054B05C--72 B6 JB SHORT MultiTra.0054B014 ;CODE 段退出? 0054B05E--EB FE JMP SHORT MultiTra.0054B05E 0054B060--90 NOP ;<=取得 API 返回点 0054B061--8BDA MOV EBX,EDX 0054B063--891D F8AF5400 MOV DWORD PTR DS:[54AFF8],EBX ;保存 API 0054B069--8B25 F0AF5400 MOV ESP,DWORD PTR DS:[54AFF0] ;取回 ESP 0054B06F--61 POPAD ;还原寄存器 0054B070--8B1D F8AF5400 MOV EBX,DWORD PTR DS:[54AFF8] ;取出 API 0054B076--EB D6 JMP SHORT MultiTra.0054B04E 0054B078--90 NOP 0054B079--8B0D F4AF5400 MOV ECX,DWORD PTR DS:[54AFF4] 0054B07F--B8 00005C00 MOV EAX,MultiTra.005C0000 ;IAT 开始地址 0054B084--3918 CMP DWORD PTR DS:[EAX],EBX 0054B086--74 CD JE SHORT MultiTra.0054B055 ;是否重复?? 0054B088--05 04000000 ADD EAX,4 0054B08D--3BC1 CMP EAX,ECX 0054B08F--72 F3 JB SHORT MultiTra.0054B084 0054B091--8919 MOV DWORD PTR DS:[ECX],EBX ;保存 API 0054B093--8305 F4AF5400 04ADD DWORD PTR DS:[54AFF4],4 ;指到下个 API ADDR 0054B09A--EB B9 JMP SHORT MultiTra.0054B055 0054B09C--90 NOP 0054B09D--90 NOP 0054B09E--90 NOP 0054B09F--90 NOP 0054B0A0--B8 00005C00 MOV EAX,MultiTra.005C0000 ;IAT 开始地址 0054B0A5--3918 CMP DWORD PTR DS:[EAX],EBX 0054B0A7--74 0E JE SHORT MultiTra.0054B0B7 ;是否找到?? 0054B0A9--05 04000000 ADD EAX,4 0054B0AE--3D 6C085C00 CMP EAX,MultiTra.005C086C ;IAT 退出地址? 0054B0B3--72 F0 JB SHORT MultiTra.0054B0A5 0054B0B5--EB FE JMP SHORT MultiTra.0054B0B5 0054B0B7--66:C702 FF25 MOV WORD PTR DS:[EDX],25FF ;修正为 JMP 0054B0BC--2D 00005C00 SUB EAX,MultiTra.005C0000 0054B0C1--05 00105C00 ADD EAX,5C1000 ;修正 OFFSET 0054B0C6--8942 02 MOV DWORD PTR DS:[EDX+2],EAX ;修正 ADDR 0054B0C9--EB 8A JMP SHORT MultiTra.0054B055 0054B0CB--90 NOP 0054B0CC--90 NOP 0054B0CD--90 NOP 0054B0CE--90 NOP 0054B0CF--90 NOP ;排序 API 0054B0D0--B9 2C085C00 MOV ECX,MultiTra.005C082C ;IAT 退出地址 0054B0D5--BE 00005C00 MOV ESI,MultiTra.005C0000 0054B0DA--8BFE MOV EDI,ESI 0054B0DC--8B06 MOV EAX,DWORD PTR DS:[ESI] 0054B0DE--8B1F MOV EBX,DWORD PTR DS:[EDI] 0054B0E0--3BC3 CMP EAX,EBX 0054B0E2--76 05 JBE SHORT MultiTra.0054B0E9 0054B0E4--93 XCHG EAX,EBX ;如果大于则互换 0054B0E5--8906 MOV DWORD PTR DS:[ESI],EAX 0054B0E7--891F MOV DWORD PTR DS:[EDI],EBX 0054B0E9--83C7 04 ADD EDI,4 0054B0EC--3BF9 CMP EDI,ECX 0054B0EE--76 EC JBE SHORT MultiTra.0054B0DC ;LOOP X1 0054B0F0--83C6 04 ADD ESI,4 0054B0F3--3BF1 CMP ESI,ECX 0054B0F5--76 E3 JBE SHORT MultiTra.0054B0DA ;LOOP X2 0054B0F7--EB FE JMP SHORT MultiTra.0054B0F7 ;排序退出 ======================================================================== (11) 运行 LordPE ,选择MultiTranse.exe 按右 key Mouse,选 dump region 取出 Stolen Code 区段 忽略无用模拟 API VM,取出必须的 VM 区段 VM Address Size =========================== 00BC0000 330000 00C40000 4000 00EA0000 3000 00F00000 1000 00F10000 1000 00F20000 1000 00F30000 1000 00F40000 1000 00F50000 1000 00F60000 1000 =========================== 全部抓出来后,再用 LordPE ,附加在 DUMP 文件尾,并修正 PE Header (12) 修正 4 个,预先解码的 API (注意:不是每个ASProtect,都会预先解码) 00401384-- JMP DWORD PTR DS:[kernel32.GetModuleFileNameA] 00406F50-- JMP DWORD PTR DS:[ADVAPI32.RegCloseKey] 00406F58-- JMP DWORD PTR DS:[ADVAPI32.RegCreateKeyExA] 00406F98-- JMP DWORD PTR DS:[ADVAPI32.RegQueryValueExA] (13)修正 Route Check 修正前.... 00BE8542--MOV EAX,DWORD PTR DS:[EAX+34] 00BE8545--CALL EAX 00BE8547--SUB DWORD PTR SS:[EBP+C],EAX 修正后 00BE8542--NOP 00BE8543--NOP 00BE8544--MOV EAX,DWORD PTR SS:[ESP+58] 00BE8548--SUB EAX,5 (14) 开始 RUN ,跨平台 TEST ~OK~!!!!! 数据整理中....... |
|
Themida V1.1.1.0 无驱动版试炼普通保护方式脱壳
最初由 fly 发布 第二个方法目前还没有写好,反正一句话,主程序演示版限制手法真是衰。又被我撞到关键处了。 |
|
Themida V1.1.1.0 无驱动版试炼普通保护方式脱壳
最初由 fly 发布 激将法对我是无效的,如果有兴趣,我可以发布破解版UNPACKME |
|
[求助]请问哪里有 telock v1.0 未开放版本的加壳程序吗?
这个版本有脱壳教学,用这么老的东西干嘛? |
|
[注意]forum of ExeTools eXeL@B форум Ru.Board
最初由 linhanshi 发布 建议你把EXETOOLS论坛所有关于狗的工具全部下载下来,收集一下,党和人民会感谢你的。 |
|
Themida SMC+注入 破解实例。
最初由 心蓝 发布 靠,我有当天的原版对比,而且官方网站依旧有这个版本的原版下载。自己看看连接的规律就知道这个版本如何下下来。 |
|
Themida V1.1.1.0 无驱动版试炼普通保护方式脱壳
最初由 Themida 发布 不好意思,忘记透露一下,真是因为FLY,让我找到了两种破解主程序方法,其中有一种通用的,可以对于未来带驱动新版的THEMIDA。这叫聪明一世糊涂一时。哈哈 |
|
Themida SMC+注入 破解实例。
最初由 心蓝 发布 此版原版是VIPSTAT.DLL没有加壳,EXE是THEMIDA,好像还是带驱动那种,另一个DLL加了SKE。VIPSTAT.DLL的壳是YOCK后加上去的。破解的确没有成功了,这个成功不是指程序能否使用是是指壳本身。 |
|
Themida V1.1.1.0 无驱动版试炼普通保护方式脱壳
最初由 fly 发布 要不是FLY的提示这个版本不带驱动,我还不知道什么时候此壳变的如此衰了,刚才尝试了用HOOK破解轻松搞定。做外挂用此壳显然没有任何作用的。 |
|
|
|
|
|
[原创]冰盾抗DDOS防火墙V6.6主程序UltraProtect脱壳
最初由 goldenegg 发布 像这类软件用THEMIDA那是脑壳有问题。对用户是一大侮辱。也说明自己是小产品的本质。 |
|
DeEPE v1.0 For EncryptPE V2.2005910
最初由 linhanshi 发布 you cannot say I am not the people. 这句英文比较强。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值