|
|
|
|
|
[推荐]新手练手壳AHpack
发来一个吧 我这几天蹂躏很多壳了 知道你也是玩壳一族的 --------- 找了52破解的最新的一个练习----------tElock V0.99脱壳 附上我的脱文 这个壳被FLY大侠蹂躏过 很简洁的办法 不过我这样的粗人就靠手感脱了他 【文章标题】: 52破解UnPackMe.exe 6的脱壳 【文章作者】: 小小菜鸟 【软件名称】: UnPackMe.exe--6 【下载地址】: 自己搜索下载 【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! -------------------------------------------------------------------------------- 【详细过程】 换了好多OD 终于躲过了CRC啊.看来比较累. 用FLYOD 插件隐藏下ISDEBEGPRSENT ----HIDE 调试设置里面 不忽略所有异常---忽略在KERNEL32中内存异常 好了 开始 载入以后 到 0046A09D U>^\E9 5EDFFFFF jmp UnPackMe.00468000 0046A0A2 0000 add byte ptr ds:[eax],al 0046A0A4 0093 A958AEE5 add byte ptr ds:[ebx+E5AE58A9],dl 0046A0AA A0 06000000 mov al,byte ptr ds:[6] 这里 连续的按下 SHIFT +F9 16次后程序运行 好了 重新载入 连续的按下 SHIFT +F9 15次 00469181 /EB 0C jmp short UnPackMe.0046918F----------F2下断 SHIFT +F9 运行 00469183 |2BD2 sub edx,edx 00469185 |64:FF32 push dword ptr fs:[edx] 00469188 |64:8922 mov dword ptr fs:[edx],esp 0046918B |FE02 inc byte ptr ds:[edx]------------停在这里 0046918D ^|EB E8 jmp short UnPackMe.00469177 跳到了这里 00469185 64:FF32 push dword ptr fs:[edx] 00469188 64:8922 mov dword ptr fs:[edx],esp 0046918B FE02 inc byte ptr ds:[edx] 0046918D ^ EB E8 jmp short UnPackMe.00469177 0046918F B8 67ABD949 mov eax,49D9AB67---------到这里 00469194 33C9 xor ecx,ecx 00469196 64:8F01 pop dword ptr fs:[ecx] 一路单步 到这里 004691F7 03C7 add eax,edi 004691F9 ^ 79 E4 jns short UnPackMe.004691DF-----------向上跳 004691FB 33C4 xor eax,esp 仔细看下面 找到一个 CALL的调用返回 retn 004691F9 ^\79 E4 jns short UnPackMe.004691DF 004691FB 33C4 xor eax,esp 004691FD 90 nop 004691FE 61 popad 004691FF 83D8 2F sbb eax,2F 00469202 C3 retn-------------F2下断 SHIFT +F9 运行 返回到 返回到 00469070 (UnPackMe.00469070) 到这里 00469070 8BB5 7F374000 mov esi,dword ptr ss:[ebp+40377F] 00469076 8BFD mov edi,ebp 00469078 8D85 3E264000 lea eax,dword ptr ss:[ebp+40263E] 一路向下 00469165 ^\0F8F 5BFFFFFF jg UnPackMe.004690C6----------往回跳了 0046916B 8D85 45294000 lea eax,dword ptr ss:[ebp+402945]----------很容易代码混淆---汗---一动代码就 乱 在下面看到 00469171 /FFE0 jmp eax ; UnPackMe.00469369-------F4 一路单步 又有一个向上的 004693A1 ^\7F D3 jg short UnPackMe.00469376 仔细看代码段 004693A3 5F pop edi 004693A4 5E pop esi 004693A5 8B8F 8B374000 mov ecx,dword ptr ds:[edi+40378B] 004693AB 8B87 87374000 mov eax,dword ptr ds:[edi+403787] 004693B1 F7C1 00000080 test ecx,80000000 004693B7 74 6A je short UnPackMe.00469423-------找到一个跳转 F4 004693B9 81E1 FFFFFF7F and ecx,7FFFFFFF 接下来又有跳转 004693E2 80E1 07 and cl,7 004693E5 ^ 75 F4 jnz short UnPackMe.004693DB----------向上 004693E7 C1E8 08 shr eax,8 在 004693E7 C1E8 08 shr eax,8 004693EA 33C2 xor eax,edx 004693EC 46 inc esi 004693ED 4B dec ebx 004693EE ^ 7F E5 jg short UnPackMe.004693D5-------这个跳转F4 又是向上的 看下面的代码段 004693F0 5F pop edi 004693F1 F7D0 not eax 004693F3 3387 8F374000 xor eax,dword ptr ds:[edi+40378F] 004693F9 35 6137E43C xor eax,3CE43761 004693FE 3385 FF374000 xor eax,dword ptr ss:[ebp+4037FF] 00469404 F7D0 not eax 00469406 2B85 83374000 sub eax,dword ptr ss:[ebp+403783] 0046940C 61 popad------------------出栈的地方 F4 单步又找到一个向上的 00469426 4E dec esi 00469427 7E 06 jle short UnPackMe.0046942F 00469429 ^ FFA5 3E264000 jmp dword ptr ss:[ebp+40263E] ; UnPackMe.0046908C---------向上的 0046942F E9 06010000 jmp UnPackMe.0046953A-------这里有跳转 呵呵F4吧 到这里 0046953A 8BB5 57374000 mov esi,dword ptr ss:[ebp+403757] 00469540 85F6 test esi,esi 00469542 0F84 8B000000 je UnPackMe.004695D3 一路单步 00469725 3A5408 1D cmp dl,byte ptr ds:[eax+ecx+1D] 00469729 ^ 74 D6 je short UnPackMe.00469701-----------向上跳转 下一行是跳转 但是有可能是解码 0046972B ^\EB D0 jmp short UnPackMe.004696FD-------F4过来--------向上 0046972D 0AF6 or dh,dh---------F4 00469766 3803 cmp byte ptr ds:[ebx],al 00469768 ^ 75 F7 jnz short UnPackMe.00469761---------向上 0046976A 83A5 4F374000 00 and dword ptr ss:[ebp+40374F],0 往下看 0046976A 83A5 4F374000 00 and dword ptr ss:[ebp+40374F],0 00469771 8B95 63374000 mov edx,dword ptr ss:[ebp+403763] 00469777 8B06 mov eax,dword ptr ds:[esi] 00469779 85C0 test eax,eax 0046977B 75 0C jnz short UnPackMe.00469789-------有一个跳转 F4 单步到 004697EE 40 inc eax 004697EF 833F 00 cmp dword ptr ds:[edi],0 004697F2 8D7F 04 lea edi,dword ptr ds:[edi+4] 004697F5 ^ 75 F7 jnz short UnPackMe.004697EE-------向上 004697F7 48 dec eax 004697F8 74 1F je short UnPackMe.00469819------这里F4 0046984A 3C 00 cmp al,0 0046984C ^ 75 F5 jnz short UnPackMe.00469843---------向上 0046984E 8803 mov byte ptr ds:[ebx],al 00469850 5B pop ebx 继续单步 004699AC 3803 cmp byte ptr ds:[ebx],al 004699AE ^ 75 F9 jnz short UnPackMe.004699A9---------向上跳 004699AE ^\75 F9 jnz short UnPackMe.004699A9 004699B0 8385 4F374000 04 add dword ptr ss:[ebp+40374F],4 004699B7 ^ E9 B5FDFFFF jmp UnPackMe.00469771---------F4 又是向上的 往下 看 004699B7 ^\E9 B5FDFFFF jmp UnPackMe.00469771 004699BC 83C6 14 add esi,14 004699BF 8B95 63374000 mov edx,dword ptr ss:[ebp+403763] 004699C5 ^ E9 1FFCFFFF jmp UnPackMe.004695E9---------依然是向上的 当我们满心欢喜的时候 会发现 始终跳不出这段了!!! 于是一路向上找到了 出路 在这里往回走 004695E1 /0F84 2F040000 je UnPackMe.00469A16------------呵呵看看跳出来了吧 重新载入 连续的按下 SHIFT +F9 15次 00469181 /EB 0C jmp short UnPackMe.0046918F----------F2下断 SHIFT +F9 运行 00469183 |2BD2 sub edx,edx 00469185 |64:FF32 push dword ptr fs:[edx] 00469188 |64:8922 mov dword ptr fs:[edx],esp 0046918B |FE02 inc byte ptr ds:[edx]------------停在这里 0046918D ^|EB E8 jmp short UnPackMe.00469177 查找 004695E1 跳到这里 004695E1 /0F84 2F040000 je UnPackMe.00469A16------------F4 回车键 跟随 到了 00469A16 8BBD 5B374000 mov edi,dword ptr ss:[ebp+40375B]------------F4 00469A1C 85FF test edi,edi 单步到了 这里 00469A6D AC lods byte ptr ds:[esi] 00469A6E 32C3 xor al,bl 00469A70 D1CB ror ebx,1 00469A72 6BDB 11 imul ebx,ebx,11 00469A75 32C2 xor al,dl 00469A77 AA stos byte ptr es:[edi] 00469A78 ^ E2 F3 loopd short UnPackMe.00469A6D---------返回的 00469A7A FF56 0F call dword ptr ds:[esi+F]--------F4 00469AE8 /EB 01 jmp short UnPackMe.00469AEB 00469AEB /EB 02 jmp short UnPackMe.00469AEF 00469AF6 /EB 01 jmp short UnPackMe.00469AF9 00469AF9 /EB 58 jmp short UnPackMe.00469B53 ------------------------------------------- 00469B6E /EB 01 jmp short UnPackMe.00469B71 到一个BOSS了 00469B71 8DC0 lea eax,eax ; 非法使用寄存器 00469B73 EB 01 jmp short UnPackMe.00469B76-----------F2下断--------(1) 00469B75 EB 68 jmp short UnPackMe.00469BDF N多次失败后...SHFT+F9 00469C72 FE03 inc byte ptr ds:[ebx] 00469C74 ^ EB E8 jmp short UnPackMe.00469C5E 00469C76 23C4 and eax,esp 00469C78 2BC9 sub ecx,ecx 00469C7A 64:8F01 pop dword ptr fs:[ecx] 00469C7D 59 pop ecx 00469C7E E8 00000000 call UnPackMe.00469C83-----------F2下断 删除刚才的(1)断点 SHIFT+F9 OK 过了 太刺激了 00469CF7 59 pop ecx 00469CF8 ^ EB C8 jmp short UnPackMe.00469CC2---------一个回跳 00469CFA 59 pop ecx-----------F4 00469D1F E8 09000000 call UnPackMe.00469D2D 00469D24 98 cwde 00469D25 E9 0C000000 jmp UnPackMe.00469D36 00469D2A 83C0 D6 add eax,-2A 00469D2D 1D 2B7DD949 sbb eax,49D97D2B 00469D32 C3 retn 00469D33 83C8 A1 or eax,FFFFFFA1 00469D36 48 dec eax 00469D37 0BC5 or eax,ebp 00469D39 C3 retn------------------一个大跳转----------光明快要降临 到了 00469BA9 8B9D 83374000 mov ebx,dword ptr ss:[ebp+403783] 00469BAF 33F6 xor esi,esi 00469BB1 F7D3 not ebx 00469BB3 0BF3 or esi,ebx 到了 这里 00469C57 59 pop ecx ; 0012FFB0 00469C58 5F pop edi 00469C59 C3 retn------------------跳向OEP -----------------------代码突变----------------------- 0045159C 55 push ebp----------------终于到头了-----------追了 一天一夜 ---DELPHI 0045159D 8BEC mov ebp,esp 0045159F 83C4 F0 add esp,-10 004515A2 B8 BC134500 mov eax,UnPackMe.004513BC 004515A7 E8 8846FBFF call UnPackMe.00405C34 004515AC A1 E02F4500 mov eax,dword ptr ds:[452FE0] 004515B1 8B00 mov eax,dword ptr ds:[eax] 004515B3 E8 F8E5FFFF call UnPackMe.0044FBB0 004515B8 A1 E02F4500 mov eax,dword ptr ds:[452FE0] 004515BD 8B00 mov eax,dword ptr ds:[eax] --------------后面的就是LORDPE DUMP修正景象大小-------- ImportREC_chs.exe填写以后用插件TELOCK 0.99修复----------- -------------------------------------------------------------------------------- 【经验总结】 本来可以多忽略几次异常的 但是好奇的我 在15次异常之后 磨难的过了 异常----希望大家有启示 其实异常部分完全可以手工跳过---------------- 原则是 要找关键的代码 ------------- -------------------------------------------------------------------------------- 【版权声明】: 本文原创于小小菜鸟.友情支持小生我怕怕, 转载请注明作者并保持文章的完整, 谢谢! 2008年10月02日 13:48:58 希望高手指点一下,完全靠感觉,不知道为什么这么脱 |
|
|
|
[求助]我安装了vmvare,但怎样在虚拟机中安装一个操作系统?让windbg进行双机调试呢.好多文章都没说这一点,我不会弄,谁能指点我一下
不会是穿虚拟机的木马研究吧,那我是暴寒啊 不告诉你任何资料了 我一直用虚拟机对抗病毒的 |
|
[求助]我安装了vmvare,但怎样在虚拟机中安装一个操作系统?让windbg进行双机调试呢.好多文章都没说这一点,我不会弄,谁能指点我一下
怎样在虚拟机中安装一个操作系统 问对人了 虚拟机我装过不下500次了 熟悉的不行了 首先 找到菜单的 第一个 文件的菜单 新建 ---虚拟机 ---摁下一步 接下来虚拟机配置 选典型 再选下一步客户机操作系统 版本什么你你自己要选好 接下来 选择你要放的虚拟机的对应文件夹下 然后 你选的 大一点 比如 5-6GB 内存什么的看机子 一般在主机1GB实际内存的话选 256-300MB左右 还有文件大小最好不要选动态的 一定要事先 划好大小 否则用的越久 虚拟机文件越大 最后整理起来非常麻烦 .----切记 然后就是网络 方式 记得选------------NAT 这样主机和虚拟机能一起上网 否则的话 都很麻烦 比如BIRAGE方式 只能选主机或者虚拟机上网 最好在安装系统盘的时候 找到压制虚拟光驱的 软件WinISO和 虚拟光驱DAEMON Tools Lite 具备这两个软件后 先把系统安装盘考到电脑上 然后WinISO压制虚拟光盘 或者直接下 系统安装的虚拟光盘 要 跟你选的 客户机操作系统一致 最后虚拟机的硬件和 准备已经好了 接下来安装 打开虚拟光驱---这样方便...然后把系统虚拟光盘装入虚拟光驱 DAEMON Tools Lite 记下 你选择的虚拟光驱 驱动盘 比如 I盘 在看"虚拟机"的菜单 找到"虚拟机"这个菜单 看最后一个菜单------------ 设置 看到虚拟机设置--------- 硬件 找到第三个-------------- CDROM 把刚才选择的虚拟光驱 比如 I盘 选上去 具体操作就是第二个项目 ============连接项目下的 ------------使用物理驱动器 选I盘 这样做了以后就做了 90%了 在 找到具体的那台虚拟机 看到======="命令 " 菜单下的 一个三角形 " 启动虚拟机 " 鼠标左键 单击 于是一个 小电脑启动了 接下来跟装机没什么区别了 就是安装系统了 为了方便以后的使用 推荐安装 "虚拟机"菜单下的第四个 安装VMWARETOOL 可以直接拖动文件实现 两个电脑文件交换 最后可以使用快照 在虚拟机系统崩溃的时候还原到快照就好了 我想你应该没什么问题了吧 |
|
THEMIDA脚本(for IAT restore)
现在在想办法清理themida的变形代码 脚本似乎不容易实现:( 修改了softworm的代码后能清理一部分,不过距离期望值还有距离 高手总是很严谨 拜读脚本 努力学起来 |
|
|
|
[原创]PEncrypt 3.1 Final 脱壳方法
一个双壳的 ASPack UnPacker.exe 让我手工脱了一夜 两层壳让我郁闷无比 知道到了OEP知道就一个指针无效.怎么都跳不出来 终于看到文章有点眉目 还是不行这个Magic Jump是直接跳的啊指针只有一个无效不能剪切 程序是DELPHI的话可能上述方法不一定一致 下面的就是我手脱第一压缩壳后的文件 第二层就是这个 PEncrypt 3.1 Final 原文件是 ASPack 脱壳机 by PE_Kill 哪里都可以下到的 脱完的文件应该是DELPHI |
|
[注意]《加密与解密(第三版)》学习指引暂停一周
写的不错,辛苦了 |
|
[求助][求助]帮帮我们菜鸟
太浮躁了 你,别人没义务为你做什么,很多时候是要你自己花时间,吃苦头,塌实的学起来的 长篇就是要你耐心的学习这些基础 等你无比熟悉之后自然是一目十行, 而且很多时候自己不做,别人写的能给你什么体会 只有自己动手塌实的分析,太难的就简单的看起来,不要觉得简单的东西就没意思 一个CALL 一个MOVE一个跳转能学到精通的有多少呢,所以不要抱怨了. 留着时间看视频自己动手,把简单的事情做到不简单 当你梦乡里都是汇编的时候,你就能用心体会那么多代码和分析的思想和精髓了 |
|
|
|
|
|
|
|
[求助][求助]PECompact 2.x ,DUMP后修复输入表出错!
├─05第五课.PECompact的两种手脱法动画教学 (0个文件夹,3个文件, 43.86 MB, 43.86 MB 在总计中.) │ PECompact.exe 29.00 KB │ PECompact.txt 2.16 KB │ PECompact的两种脱法.exe 43.83 MB 刚发三人行的教程你参考下 弄的很好的赞一个 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值