吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12119|回复: 21
收起左侧

[原创] 手脱NTkrnl Protector0.15

[复制链接]
ximo 发表于 2008-9-12 14:08
NTkrnl Protector0.15脱壳修复一(非Delphi程序)

NTkrnl Protector0.15其实也是个老壳,07年的吧(因为08年3月底才开始接触破解,因此以前的东西和历史都不太了解) .无意中看到这个壳,就拿来试炼下,呵呵,幸好是个软柿子,让我这种菜鸟也搞定了,有点小兴奋.鉴于网上几乎没有这个壳的教程,故写个文章给大家分享下,也算是记录下自己的学习笔记吧.废话有点多,正式开始吧!

今天来试炼下全保护(其实也不能叫全保护,因为能下到的是demo,还有很多选项加不了,总之,是我所能加的全保护)
1.GIF

由于Delphi的程序在修复上有点小麻烦,因此首先来看下非D程序的脱壳和修复方法,D的程序在下一次中再详细讲修复过程,试炼程序是98记事本,众所周知是个C++的程序.好,开工!

一、Anti的处理

其实这个Anti处理很简单,简单的替换下代码,强行跳过Anti.

OD载入后停在了下面的位置

2.GIF

晕,看入口,还以为是ASProtect的。不管他

忽略所有的异常,隐藏下OD,F9运行。
3.GIF

就停在了这里。如果继续F9或者F8下去的话,OD就会提示"OD无法调试异常",因此就没办法继续调试下去了.

有个简单的方法,把停在位置的retn改为int3即可

让其强行执行CC异常,也就是int3异常,改完后,F8走,就来到了下面的地方.

4.GIF

就这样,Anti就很容易的就通过了.下面的任务就是处理输入表了

二、找magic jump,跳过IAT加密

在刚才的位置,向下看数据窗口,找有GetProcAddress函数的这行,然后下硬件访问断点

5.GIF

接着F9,来到下面的位置,然后就取消硬件断点

6.GIF

接着,下断点:bp VirtualAlloc,SHIFT+F9运行,中断后取消断点,ALT+F9返回

返回后,往下找第二次出现"kernel32.GetProcAddress"注释的CALL处,接着,在下面的CALL处,Enter跟随进去
00464E1E85C0 test eax,eax00464E208945 D4mov dword ptr ss:[ebp-2C],eax00464E230F84 83010000je 00464FAC00464E296A 40push 4000464E2B68 00100000push 100000464E30FF75 D0push dword ptr ss:[ebp-30]00464E336A 00push 000464E35FFD7 call edi00464E3785C0 test eax,eax00464E398945 C8mov dword ptr ss:[ebp-38],eax00464E3C0F84 6A010000je 00464FAC00464E426A 40push 4000464E4468 00100000push 100000464E4953 push ebx00464E4A6A 00push 000464E4CFFD7 call edi00464E4E33DB xor ebx,ebx00464E503BC3 cmp eax,ebx00464E528945 E0mov dword ptr ss:[ebp-20],eax00464E550F84 51010000je 00464FAC00464E5B68 0C354600push 46350C ; ASCII "kernel32.dll"00464E60FF15 E0104600call dword ptr ds:[4610E0]; kernel32.LoadLibraryA00464E6668 9C364600push 46369C ; ASCII "GetProcAddress"00464E6B50 push eax00464E6CFF15 DC104600call dword ptr ds:[4610DC]; kernel32.GetProcAddress00464E728945 ECmov dword ptr ss:[ebp-14],eax00464E758B46 04mov eax,dword ptr ds:[esi+4]00464E788B08 mov ecx,dword ptr ds:[eax]00464E7A895D E4mov dword ptr ss:[ebp-1C],ebx00464E7D895D CCmov dword ptr ss:[ebp-34],ebx00464E80895D D8mov dword ptr ss:[ebp-28],ebx00464E838948 04mov dword ptr ds:[eax+4],ecx00464E868B46 04mov eax,dword ptr ds:[esi+4]00464E898B40 04mov eax,dword ptr ds:[eax+4]00464E8C8B38 mov edi,dword ptr ds:[eax]00464E8E037D 08add edi,dword ptr ss:[ebp+8]00464E918D4D FClea ecx,dword ptr ss:[ebp-4]00464E9451 push ecx00464E95E8 81FCFFFFcall 00464B1B00464E9A83F8 FFcmp eax,-100464E9D0F84 09010000je 00464FAC00464EA3FF75 FCpush dword ptr ss:[ebp-4]00464EA6FF15 E0104600call dword ptr ds:[4610E0]; kernel32.LoadLibraryA00464EAC3BC3 cmp eax,ebx00464EAE8945 F8mov dword ptr ss:[ebp-8],eax00464EB10F84 F5000000je 00464FAC00464EB78B46 04mov eax,dword ptr ds:[esi+4]00464EBA8B40 04mov eax,dword ptr ds:[eax+4]00464EBD8B40 18mov eax,dword ptr ds:[eax+18]00464EC08B08 mov ecx,dword ptr ds:[eax]00464EC28948 04mov dword ptr ds:[eax+4],ecx00464EC58B46 04mov eax,dword ptr ds:[esi+4]00464EC88B40 04mov eax,dword ptr ds:[eax+4]00464ECB8B40 18mov eax,dword ptr ds:[eax+18]00464ECE8B40 04mov eax,dword ptr ds:[eax+4]00464ED18B40 04mov eax,dword ptr ds:[eax+4]00464ED43BC3 cmp eax,ebx00464ED675 04jnz short 00464EDC00464ED833C0 xor eax,eax00464EDAEB 0Bjmp short 00464EE700464EDC25 FFFFFF7Fand eax,7FFFFFFF00464EE18945 F0mov dword ptr ss:[ebp-10],eax00464EE433C0 xor eax,eax00464EE640 inc eax00464EE72BC3 sub eax,ebx00464EE974 13je short 00464EFE00464EEB48 dec eax00464EEC75 76jnz short 00464F6400464EEEFF75 F0push dword ptr ss:[ebp-10]00464EF1FF75 F8push dword ptr ss:[ebp-8]00464EF4FF15 DC104600call dword ptr ds:[4610DC]; kernel32.GetProcAddress00464EFA8907 mov dword ptr ds:[edi],eax00464EFCEB 66jmp short 00464F6400464EFEFF75 FCpush dword ptr ss:[ebp-4]00464F01E8 A1FDFFFFcall 00464CA7 ; 就是这里!跟随进去吧!00464F0685C0 test eax,eax00464F088B46 04mov eax,dword ptr ds:[esi+4]00464F0B8B40 04mov eax,dword ptr ds:[eax+4]00464F0E74 28je short 00464F3800464F108D4D E0lea ecx,dword ptr ss:[ebp-20]00464F1351 push ecx00464F148D4D C8lea ecx,dword ptr ss:[ebp-38]00464F1751 push ecx00464F188D4D D4lea ecx,dword ptr ss:[ebp-2C]00464F1B51 push ecx

跟随进去后,第一个看到的je就是magic jump!改JMP吧!

7.GIF

这样,就跳过了IAT的加密

三、直达OEP!

该完magic jump,下面的过程就简单了,直达OEP!

其实,你可以F8跟下去,不一会就能找到OEP了.

或者,直接找特征码

CTRL+B,搜索61FFE0,取消"整个段块"前的勾

找到下面的位置

8.GIF

在jmp eax处F2,SHIFT+F9,取消断点

再F8一次,就来到OEP了!

9.GIF

四、dump+修复

来到OEP后就先用Lord PE给dump下来吧

接着打开I-REC,看看IAT

10.GIF

很好,发现全部有效。

这时候别急着给修复,但也别关闭I-REC,因为一会还要修复呢。

其实,现在修复的话,会发现,修复后程序是无法运行的。很奇怪吧,把IAT的加密给避开了,OEP也找对了,但为什么还运行不了呢?
很明显,这个壳处理了资源表和TLS表!因为非Delphi程序不需处理TLS表,因此,相对来说简单很多。

ALT+M,来到内存镜像处,然后在PE Header处,也就是00400000处,双击。来到数据。

下面就往下找,找资源表吧

11.GIF

下面的任务就是修复了,很简单了。

用Lord PE的PE编辑器打开刚dump下来的程序,然后选择目录
12.GIF

然后把在OD中看见的资源信息填到PE编辑器里的"资源"一栏上吧

修改后,点保存.

接着,就用I-REC来修复下修改后的dump.exe吧.

哈,能正常运行了吧~

脱壳就到此结束了.下一次将具体讲如何修复Delphi的程序!

附件中是主程序+试炼程序

主程序+试炼.rar

1.53 MB, 下载次数: 75, 下载积分: 吾爱币 -1 CB

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ximo 发表于 2008-9-12 14:09

NTkrnl Protector0.15脱壳修复二(Delphi程序的修复)

NTkrnl Protector0.15脱壳修复二(Delphi程序的修复)

前面已经讲过非D程序的脱壳和修复方法,本次主要介绍Delphi程序的修复方法.
由于Delphi程序有TLS表,因此,修复起来相对复杂的多.感谢小生提供的动画,参考此动画,顺利完成D程序的修复!
前面的处理过程完全一样,只是加了个TLS表的修复过程.
按照前面的操作,处理完资源信息后,下面,开始处理TLS表!

仍然在PE编辑器里面,打开区段.然后添加一个区段.

1.GIF

添加完后,编辑一下区段信息

2.GIF

说明下:

区段名:随意填写,无要求
虚拟大小:填1000
物理大小:填200
其他的都不要动他就是.填完后保存一下

既然增加了一个区段,就用16进制编辑工具来增加200字节的空间,来引导新加区段的信息.

如图:
3.GIF

从112DEO(112FE0-200=112DE0)处开始选,到最后,就是200个字节了
然后,在最后粘贴上即可!
不过,记下开始的地址:00113000,下面要用到!

继续打开PE编辑器,打开目录,在TLS表处填相关的信息:

RVA处的值就是刚才所要记下的值得:00113000
SIZE都填18即可!

4.GIF

填完后写点下保存,然后在点旁边的那个按纽(L,H旁边那个有2点的那个按纽)
出现TLS表后,接着填下信息

5.GIF

说明:

第一个值=00400000+00113000+100=00513100
第二个值=第一个值+100=00513200
第三个值=第二个值+100=00513300
第四个值=第三个值+100=00513400

填完后点保存.

到此,所有的工作都已经结束,下面的任务就是用I-REC修复一下,程序即可正常运行!

附件中是试炼程序

试炼.rar

468 KB, 下载次数: 23, 下载积分: 吾爱币 -1 CB

qq513701092 发表于 2008-9-12 15:09
小生我怕怕 发表于 2008-9-12 15:58
强大学习啦,那老外的教程我硬没看懂,还是看你的教程清楚些,学习啦!
Hmily 发表于 2008-9-12 21:52
超哥的教程要细细的看,慢慢的看,你会学到很多东西!
mycsy 发表于 2008-9-12 23:29
野蛮的牛淫啊~

膜拜 膜拜膜拜……
hxx1994 发表于 2008-9-13 01:45
看你的教程清楚些,学习啦!
Tale 发表于 2008-9-13 05:19
真是超牛~~~~~~~~~~~~~~~~
caskywz 发表于 2008-9-13 17:57
极品啊.....哈 怎么没视频
wgz001 发表于 2008-9-15 06:36
又一篇精华诞生了 学习下 [s:43]
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 21:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表