棒棒糖 发表于 2007-5-15 19:22:22

NTkrnl.Protector.V0.1 去NAG 分析

NTkrnl.Protector.V0.1 去NAG 分析

主程序下载地址:http://ntkrnl.com/download/securesuite/ntkrnlprotector.zip


脱壳我就不说了,论坛上已经说相关的教程了,

虽然FLY 也破解了一个,但是我想把我个人的分析方法与大家分享:)

1、我们用NTkrnl.Protector.V0.1加壳一个记事本,下CreateFileA,发现他在读取license.nes2次中断后取消断点alt+f9返回 单步走
来于此

0042BA20    8B41 0C         mov   eax, dword ptr
0042BA23    8378 18 01      cmp   dword ptr , 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 , edx
004ECE3F|.8945 FC       mov   dword ptr , eax
004ECE42|.33C0          xor   eax, eax
004ECE44|.55            push    ebp
004ECE45|.68 C8D34E00   push    004ED3C8
004ECE4A|.64:FF30       push    dword ptr fs:
004ECE4D|.64:8920       mov   dword ptr fs:, esp
004ECE50|.8D55 F4       lea   edx, dword ptr
004ECE53|.8B45 FC       mov   eax, dword ptr
004ECE56|.8B80 50050000 mov   eax, dword ptr
004ECE5C|.E8 63F3F5FF   call    0044C1C4
004ECE61|.8B45 F4       mov   eax, dword ptr
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                单步走到这里后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       改成jmp 560000
004ECE7E      8982 CC100000 mov   dword ptr , eax

00560000      C680 D73A0300>mov   byte ptr , 0EB    我们Patch的字节
00560007      8B55 FC       mov   edx, dword ptr                 原代码
0056000A      8982 CC100000 mov   dword ptr , eax   原代码
00560010    ^ E9 6FCEF8FF   jmp   004ECE84                               跳回去

我们保存,再加壳一个程序,启动时已经不在有NAG 了


希望此文能让一些起步的朋友们学到一点知识,我的目的也就达到。如有错误请指出。谢谢

黑夜彩虹 发表于 2007-5-15 19:40:44

加精慰劳一下~~

飘云 发表于 2007-5-15 20:07:50

喜欢这样有技术性的 Patch!
给你满分:10分!

timer 发表于 2007-5-15 20:29:43

有前途...

lyoulj 发表于 2007-5-15 21:37:46

不错哦,谢谢楼主分享啊

glts 发表于 2007-5-16 14:12:43

197731028这ID也是你???

pw2000 发表于 2007-5-22 15:34:06

需要老师教导软件脱壳才能明白。
页: [1]
查看完整版本: NTkrnl.Protector.V0.1 去NAG 分析