驱动管家:安全、高效、精准的专业驱动下载站!

手工修复引入表的步骤 加壳保护软件svkp怎么用?

2018-02-24 16:08:12责编:llp   来源:驱动管家     人气:

手工修复引入表是破解加壳软件最难的一道工序,一向是顶尖高手的专利,令我等菜鸟往往望而却步,而不敢奢望越雷池半步!那么有没有简单一些的方法呢?通过本人的实践,终于找到了这条捷径。我的做法可以分为以下几步:

1、确定程序的OEP,并脱壳。

2、使未脱壳程序处于正常运行态,使用ImportREC或LordPE检查是否所有的API都可识别,并记录下不可识别API的列表及其函数入口地址。

3、重新启动未脱壳程序,并使之中断在OEP,用前面记录到的资料在所有不可识别API的入口设执行断点,尽可能尝试软件所有的功能,通过跟踪查清每一个不可识别API的名称及实际入口地址,并加以记录。

4、再次启动未脱壳程序,并使之中断在OEP,用上一步确定的实际API的入口地址逐一替换相应的未识别API入口地址,然后使程序处于正常运行态,使用ImportREC或LordPE进行检查,这时所有的API就都能识别了。API识别完成后,对已脱壳的程序进行FixDump,整个修复过程就完成了。

下面让我们一起来亲手搞定目前比较凶悍的加壳保护软件之一--SVKP1.32(当前版本,看雪工具有介绍)。

使用工具:(1)、SoftICE 2.6 根据http://www.chat001.com/forum/crackforum/251195.html自行制作的修改版

(2)、ImportREC 1.6 (http://www.pediy.com/tools/PE_tools/Rebuilder/Import REC/ucfir16f.zip)

(3)、LordPE DLX(http://www.pediy.com/tools/PE_tools/Lordpe/LPE-DLX.ZIP)

(4)、UltraEdit 10.10a(http://www.ttdown.com/SoftDown.asp?ID=6718)

目标程序: SVK Protect 1.32 (http://www.anticracking.szm.sk/svkp_setup.exe)

手工修复引入表的步骤 加壳保护软件svkp怎么用?

安装目标程序,装载SoftICE。

1、下断点“bpint 1”,然后启动SVKP.EXE,程序中断于

001B:07BABC57CD01INT01

下命令“bd 0”关闭断点,并使用命令“r eip 07BAEE11”修改指令指针,以便躲过SEH陷阱,再下命令“g 07D31FA5”,使程序中断于07D31FA5处(当然,你也可以使用命令“g 00401000”使程序直接停在OEP处),使用F8键单步跟踪,要不了几步就可以到达程序的OEP:00401000 处了。记录下此值,并记录下从OEP开始的几行指令及相应十六进制编码,下汇编命令“a eip”修改入口指令为“JMP EIP”然后用命令“x”使程序退出SoftICE并在OEP处进入死循环。

2、下面需要从内存中Dump出程序。启动LordPE,用鼠标指针点选SVKP.EXE进程,点鼠标右键,在弹出的菜单中点选“Correct Image Size”项前先修正映像尺寸。然后在相同的菜单中点选“Dump Full”以Dump出脱过壳的程序,命名为“SVKP_Dump.exe”。然后还在相同菜单下点选“Burn Process”杀死在内存之中处于死循环状态的程序。此后用LordPE的PE Editor功能调入脱过壳的SVKP_Dump.exe,修改其OEP的RVA为00001000,保存退出。

3、下面需要复原SVKP_Dump.exe在OEP处的指令。使用UltraEdit载入SVKP_Dump.exe,使用十六进制码搜索功能搜索以下字节串

eb fe f3 4b 00

找到后修改为:

68 1d f3 4b 00

改好后存盘退出。至此,脱壳程序SVKP_Dump.exe修改完毕,剩下的工作就是修复引入表IAT了。

4、启动ImpotREC,在进程列表中选取SVKP.EXE,修改相应OEP的RVA为00001000,点击“IAT Auto Search”按钮,再点击“Get Impots”按钮,逐一检查API的识别情况。最后发现,有5个API程序无法识别,对应的入口分别是:

(1) 07D37656

(2) 07D49E52

(3) 07D49E82

(4) 07D333DD

(5) 07D32070

5、重新启动加壳程序,使之停在OEP处,下断点:

(1)、“bpx 07D37656”

(2)、“bpx 07D49E52”

(3)、“bpx 07D49E82”

(4)、“bpx 07D333DD”

(5)、“bpx 07D32070”

然后让程序继续执行,分别从断点处开始跟踪,看看程序调用的究竟是哪个API,然后再返回到调用处看看:

(1) 00401005 CALL [004C521C] -- 07D37656 <-- SVKP API

(2) 00402F04 CALL [004C51A8] -- 07D49E52 <-- KERNEL32!CopyFileA

(2) 0040300B CALL [004C51A8] -- 07D49E52 <-- KERNEL32!CopyFileA

(3) 00402F58 CALL [004C51B0] -- 07D49E82 <-- KERNEL32!CreateFileMappingA

(3) 00403694 CALL [004C51B0] -- 07D49E82 <-- KERNEL32!CreateFileMappingA

(4) 00401086 CALL [004C51F8] -- 07D333DD <-- KERNEL32!GetModuleHandleA

(5) 004011A8 CALL [004C5200] -- 07D32070 <-- KERNEL32!ExitProcess

现在情况就比较清楚了,第一个API是用于为传入的地址装载固定的文本内容,只在程序开始时调用,不是很重要,我们为它指定一个调用形式相当的API--KERNEL32!GetVersionExA作为替代,其它的API已经清楚了。

6、再次启动加壳程序,使之停在OEP处,用识别出来的API入口地址替换原来无法识别的API入口地址。在本人的系统下,这些识别出来的API的对应地址分别是:

(1)、KERNEL32!GetVersionExA-- 77E6A9C3

(2)、KERNEL32!CopyFileA-- 77E7DA46

(3)、KERNEL32!CreateFileMappingA -- 77E68492

(4)、KERNEL32!GetModuleHandleA-- 77E66C42

(5)、KERNEL32!ExitProcess-- 77E78F94

需要做的工作就是把这些新的入口地址填到相应的内存单元,就像这样:

序号内存地址修改前修改后

===============================================

(1)、[004C521C]07D3765677E6A9C3

(2)、[004C51A8]07D49E5277E7DA46

(3)、[004C51B0]07D49E8277E68492

(4)、[004C51F8]07D333DD77E66C42

(5)、[004C5200]07D3207077E78F94

===============================================

为此,分别下命令:

(1)、“e 004C521C C3 A9 E6 77”

(2)、“e 004C51A8 46 DA E7 77”

(3)、“e 004C51B0 92 84 E6 77”

(4)、“e 004C51F8 42 6C E6 77”

(5)、“e 004C5200 94 8F E7 77”

以完成此项修改。

完成此项工作后,下命令“r eip 0040102E”,把EIP从00401000更改为0040102E,让程序继续执行。按照前面的第4项操作,你会发现,所有的API都可以正常识别出来了。这时,用鼠标点选“Fix Dump”按钮,在弹出的文件选择窗中,用Browse功能选取前面已经脱过壳的SVKP_Dump.EXE,点确定就Ok了。

7、由于KERNEL32!GetVersionExA是代用的,所以还需要考虑修改后给程序流向带来的影响。

001B:00401000681DF34B00PUSH004BF31D

001B:00401005FF151C524C00CALL[004C521C]

001B:0040100B85C0TESTEAX,EAX

001B:0040100D751FJNZ0040102E

我们看到,修改前:

001B:00401005FF151C524C00CALL[004C521C]

总是返回EAX=1,而修改后又总是返回EAX=0,这就改变了程序的实际流向,必须补救,措施就是把

001B:0040100D751FJNZ0040102E

修改为

001B:0040100DEB1FJMP0040102E

Ok,你都照做了吗?大功告成!试着启动一下程序看看,是不是很酷?

  • access教程 怎么利用access导出webshell?

    access教程 怎么利用access导出webshell?

    已经听N个人过说有人已经发现SQL注入Access得到webshell的技术了,也只是听说而已,具体的细节还是不得而知。最近在看的书中一章提到Jet的安全,然后灵光一闪,呵呵,发现了一种可以利用access导出asp的方法,分

    详情2018-01-14 09:00:08责编:llp   来源:驱动管家     
  • web服务器安全知识 如何打造apache web服务器安全?

    web服务器安全知识 如何打造apache web服务器安全?

    HTTP拒绝服务攻击攻击者通过某些手段使服务器拒绝对http应答,这使Apache对系统资源(cup时间与内存)需求巨增,最终造成系统变慢甚至完全瘫痪,Apache服务器最大的缺点是,它的普遍性使它成为众矢之的,Apache服务器无

    详情2018-01-24 19:38:59责编:llp   来源:驱动管家     
  • 防泄密软件:大势至usb端口控制软件安装有哪些注意事项?

    防泄密软件:大势至usb端口控制软件安装有哪些注意事项?

    在公司局域网网络管理中,我们常常需要禁止电脑随意安装软件、禁止电脑随意安装程序,防止拖慢电脑速度或让电脑遭遇病毒侵袭,怎么实现呢?大势至USB端口控制软件(点击下载)可以实现禁止电脑安装软件、禁止电脑

    详情2018-01-28 09:56:56责编:llp   来源:驱动管家     
  • 迅雷浏览器如何提权?可以利用安装迅雷的htm文件

    迅雷浏览器如何提权?可以利用安装迅雷的htm文件

    当我们使用迅雷下载东西的时候,会调用我们安装迅雷后一个htm文件,去激活htm文件里的一些代码,把我们所下载东西添加到列表当中。所对应的htm文件有2处一处是C: Program Files Thunder Network Thunder Progra

    详情2018-02-16 18:04:33责编:llp   来源:驱动管家     
  • quicktime播放器存在缓冲区溢出漏洞怎么修复?

    quicktime播放器存在缓冲区溢出漏洞怎么修复?

    受影响系统:Apple QuickTime Player < 7 4不受影响系统:Apple QuickTime Player 7 4Apple QuickTime是一款非常流行的多媒体播放器。QuickTime在处理压缩的PICT图形时存在缓冲区溢出漏洞,如果用户受骗

    详情2018-01-28 11:40:20责编:llp   来源:驱动管家     
  • dos攻击和ddos攻击的区别是什么?ddos攻击的方式有哪几种?

    dos攻击和ddos攻击的区别是什么?ddos攻击的方式有哪几种?

    什么是拒绝服务攻击(DOS)DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻

    详情2018-02-01 10:35:23责编:llp   来源:驱动管家     
  • 什么是dns漏洞?模拟dns缓存毒药攻击的步骤

    什么是dns漏洞?模拟dns缓存毒药攻击的步骤

    如果你访问大型知名网站打开的却是病毒网站,如果你访问网银的官方网站打开的却是假冒网银页面,如果访问的是正规网站打开的却是色情网站……这些情况听起来不可思议,输入的网址是正确的为什么打开的却是其他网

    详情2018-02-07 10:01:55责编:llp   来源:驱动管家     
  • 什么是私有云?私有云也是不安全的?

    什么是私有云?私有云也是不安全的?

    公有云私有云的交锋焦点无疑指向了数据安全问题。HyperStratus咨询公司首席执行官伯纳德·戈尔登(Bernard Golden)撰文指出,一个接一个的调查表明,对于公有云计算,安全是潜在用户最担心的问题。戈尔登本人在去

    详情2018-01-26 17:05:23责编:llp   来源:驱动管家     
  • javascript教程 javascript字符串如何被null字符截断

    javascript教程 javascript字符串如何被null字符截断

    在IE中javascript的字符串可以被NULL字符截断,不过仅仅是getValue的时候截断 测试代码:alert(& 39;abc 0 def& 39;)如果只是这样最多就是spoofing,但配合IE(

    详情2018-01-18 15:32:50责编:llp   来源:驱动管家     
  • quicktime是什么?quicktime没有正确地解析图形描述符原子怎么办?

    quicktime是什么?quicktime没有正确地解析图形描述符原子怎么办?

    受影响系统: Apple QuickTime Player < 7 4 不受影响系统: Apple QuickTime Player 7 4 描述: Apple QuickTime是一款非常流行的多媒体播放器。 QuickTime没有正确地解析图形描述符(IDSC)原子,如果用户受骗打开了包含有畸形IDSC原子的恶意电

    详情2018-01-30 15:58:29责编:llp   来源:驱动管家