DLL补丁劫持制作

DLL:

由于输入表中只包含 DLL 名而没有它的路径名,因此加载程序必须在磁盘上搜索 DLL 文件。首先会尝试从当前程序所在的目录加载 DLL,如果没找到,则在Windows 系统目录中查找,最后是在环境变量中列出的各个目录下查找。利用这个特点,先伪造一个系统同名的 DLL,提供同样的输出表,每个输出函数转向真正的系统 DLL。程序调用系统 DLL 时会先调用当前目录下伪造的 DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统 DLL 被劫持(hijack)了。

利用这种方法取得控制权后,可以对主程序进行补丁。此种方法只对除kernel32.dll、ntdll.dll等核心系统库以外的DLL有效,如网络应用程序的ws2_32.dll、游戏程序中的d3d8.dll,还有大部分应用程序都调用的lpk.dll、sxs.dll,这些DLL都可被劫持。


伪造的 dll 制作好后,放到程序当前目录下,这样当原程序调用原函数时就调用了伪造的dll的同名函数,进入劫持DLL的代码,处理完毕后,再调用原DLL此函数。

 

案例软件也是从某个破解论坛上找的,算是拿着做课后练习,边学边记录.

 

0x01

OD

PYG-优雅DLL劫持补丁制作工具

 

0x02

这个软件是比较低的版本,跟现在升级之后的网络验证有很多不同,本篇是讲的DLL补丁劫持

 

0x03

PEID查壳

无壳,C++编写的,不用在意字符串找不到的问题

 

0x04

载入OD,CTRL+G,到401000

因为之前没有加壳,80%的可能是可以查找到字符串的

来到最上边,找到到期时间双击到代码处,我们就干掉试用时间,达到长久试用的效果

00401291  |. /0F85 2B010000jnz 2.004013C2

00401297  |. |68 40726A00   push 2.006A7240 0040129C  |. |8B0424        mov eax, dword ptr ss:[esp] 0040129F  |. |8B00          mov eax, dword ptr ds:[eax] 004012A1  |. |8B00          mov eax, dword ptr ds:[eax] 004012A3  |. |FF90 88000000call dword ptr ds:[eax+0x88] 004012A9  |. |8945 F8       mov [local.2], eax 004012AC  |. |837D F8 01    cmp [local.2], 0x1 004012B0  |. |0F85 D7000000jnz 2.0040138D 004012B6  |. |68 40726A00   push 2.006A7240 004012BB  |. |8B0424        mov eax, dword ptr ss:[esp] 004012BE  |. |8B00          mov eax, dword ptr ds:[eax] 004012C0  |. |8B00          mov eax, dword ptr ds:[eax] 004012C2  |. |FF50 28       call dword ptr ds:[eax+0x28] 004012C5  |. |8945 FC       mov [local.1], eax 004012C8  |. |FF75 FC       push [local.1] 004012CB  |. |68 7E844700   push 2.0047847E                          ;  到期时间: 004012D0  |. |B9 02000000   mov ecx, 0x2 004012D5  |. |E8 AAFEFFFF   call 2.00401184 004012DA  |. |83C4 08       add esp, 0x8 004012DD  |. |8945 F8       mov [local.2], eax 004012E0  |. |8B5D FC       mov ebx, [local.1] 004012E3  |. |85DB          test ebx, ebx 004012E5  |. |74 09         je short 2.004012F0 004012E7  |. |53            push ebx 004012E8  |. |E8 156F0000   call 2.00408202 004012ED  |. |83C4 04       add esp, 0x4 004012F0  |> |6A 00         push 0x0 004012F2  |. |6A 00         push 0x0 004012F4  |. |6A 00         push 0x0 004012F6  |. |68 01030080   push 0x80000301 004012FB  |. |6A 00         push 0x0 004012FD  |. |68 00000000   push 0x0 00401302  |. |68 04000080   push 0x80000004 00401307  |. |6A 00         push 0x0 00401309  |. |8B45 F8       mov eax, [local.2] 0040130C  |. |85C0          test eax, eax 0040130E  |. |75 05         jnz short 2.00401315 00401310  |. |B8 79844700   mov eax, 2.00478479 00401315  |> |50            push eax 00401316  |. |68 03000000   push 0x3 0040131B  |. |BB 608D4000   mov ebx, 2.00408D60 00401320  |. |E8 E36E0000   call 2.00408208 00401325  |. |83C4 28       add esp, 0x28 00401328  |. |8B5D F8       mov ebx, [local.2] 0040132B  |. |85DB          test ebx, ebx 0040132D  |. |74 09         je short 2.00401338 0040132F  |. |53            push ebx 00401330  |. |E8 CD6E0000   call 2.00408202 00401335  |. |83C4 04       add esp, 0x4 00401338  |> |6A 00         push 0x0 0040133A  |. |68 00000000   push 0x0 0040133F  |. |6A FF         push -0x1 00401341  |. |6A 05         push 0x5 00401343  |. |68 00000106   push 0x6010000 00401348  |. |68 01000152   push 0x52010001 0040134D  |. |E8 DA6E0000   call 2.0040822C 00401352  |. |83C4 18       add esp, 0x18 00401355  |. |68 02000080   push 0x80000002 0040135A  |. |6A 00         push 0x0 0040135C  |. |68 

转载于:https://www.cnblogs.com/ichunqiu/p/6742465.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值