|
![]() | 作者: yongmin [yongmin]
![]() |
登录 |
作者:197731028 转贴自:一蓑烟雨 脱壳我就不说了,论坛上已经说相关的教程了, 虽然FLY 也破解了一个,但是我想把我个人的分析方法与大家分享:) 1、我们用NTkrnl.Protector.V0.1加壳一个记事本,下CreateFileA,发现他在读取license.nes 2次中断后取消断点alt+f9返回 单步走 来于此 0042BA20 8B41 0C mov eax, dword ptr [ecx+C] 0042BA23 8378 18 01 cmp dword ptr [eax+18], 1 0042BA27 75 0B jnz short 0042BA34 **********这个乃关键跳**** 0042BA29 E8 C5000000 call 0042BAF3 **********这个打开NAG**** 我们纪录8B 41 0C 83 78 18 01 75 0B 后面需要用到 2、主程序脱壳后为Delphi程序,我们用dede查找 Start按钮事件找到004ECE2C OD载入程序Ctrl+G来到004ECE2C并设置断点 F9运行程序,在主程序选择好未加壳记事本,点 Start 中断于下,F8单步走,直到加载NSEProLib.dll后 004ECE2C /. 55 push ebp Start按钮事件起始位置(Dede找到的) 004ECE2D |. 8BEC mov ebp, esp 004ECE2F |. B9 0F000000 mov ecx, 0F 004ECE34 |> 6A 00 push 0 004ECE36 |. 6A 00 push 0 004ECE38 |. 49 dec ecx 004ECE39 |.^ 75 F9 jnz short 004ECE34 004ECE3B |. 51 push ecx 004ECE3C |. 8955 F8 mov dword ptr [ebp-8], edx 004ECE3F |. 8945 FC mov dword ptr [ebp-4], eax 004ECE42 |. 33C0 xor eax, eax 004ECE44 |. 55 push ebp 004ECE45 |. 68 C8D34E00 push 004ED3C8 004ECE4A |. 64:FF30 push dword ptr fs:[eax] 004ECE4D |. 64:8920 mov dword ptr fs:[eax], esp 004ECE50 |. 8D55 F4 lea edx, dword ptr [ebp-C] 004ECE53 |. 8B45 FC mov eax, dword ptr [ebp-4] 004ECE56 |. 8B80 50050000 mov eax, dword ptr [eax+550] 004ECE5C |. E8 63F3F5FF call 0044C1C4 004ECE61 |. 8B45 F4 mov eax, dword ptr [ebp-C] 004ECE64 |. E8 57C8F1FF call 004096C0 004ECE69 |. 84C0 test al, al 004ECE6B |. 0F84 B8040000 je 004ED329 004ECE71 |. 68 D8D34E00 push 004ED3D8 ; /FileName = "NSEProLib.dll" 004ECE76 |. E8 09A1F1FF call <jmp.&kernel32.LoadLibraryA> ; \LoadLibraryA 加载NSEProLib.dll 004ECE7B |. 8B55 FC mov edx, dword ptr [ebp-4] 单步走到这里后EAX值为7140000 你那里可能会变 Alt+M ---Ctrl+B 搜 8B 41 0C 83 78 18 01 75 0B 然后纪录地址,我这里的7173AD0 你那里可能会变 我们要Patch的是75这个字节 75 7173AD0+7=75所在字节 7173AD7-EAX=33AD7这个值肯定是不会变的。 我们来Patch她。找块空地 我找的是560000 004ECE7B |. 8B55 FC mov edx, dword ptr [ebp-4] 改成jmp 560000 004ECE7E 8982 CC100000 mov dword ptr [edx+10CC], eax 00560000 C680 D73A0300>mov byte ptr [eax+33AD7], 0EB 我们Patch的字节 00560007 8B55 FC mov edx, dword ptr [ebp-4] 原代码 0056000A 8982 CC100000 mov dword ptr [edx+10CC], eax 原代码 00560010 ^ E9 6FCEF8FF jmp 004ECE84 跳回去 我们保存,再加壳一个程序,启动时已经不在有NAG 了 希望此文能让一些起步的朋友们学到一点知识,我的目的也就达到。如有错误请指出。谢谢 |
地主 发表时间: 07-05-17 10:33 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号