首页
社区
课程
招聘
[原创]ctf中 可执行文件patch技术
发表于: 2017-11-7 22:51 16825

[原创]ctf中 可执行文件patch技术

2017-11-7 22:51
16825

在ctf比赛中, 有时我们需要对可执行文件进行patch, 或者在植入后门时,patch也是常用的手段。不过手工patch比较麻烦,下面介绍几个工具。

博客地址:9e7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6B7K9h3&6&6N6e0l9H3i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5`.

地址:
a67K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9N6h3&6A6P5r3u0G2j5$3S2K6i4K6u0r3M7r3q4@1j5$3S2C8K9i4c8Q4x3X3g2Y4K9i4b7`.

1.由于链接器的原因暂时还不能使用 libc 中的函数,所以所有要做的事情都需要我们自己实现。用 c 或者 asm

使用方式:./patch binary_file patch.py

过滤printf中 %n 的脚本。

64位程序,修改 malloc函数的参数为 0x20

32位,由于与栈进行操作,要注意保存还原返回地址

或者

程序地址:854K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9K9h3g2X3i4K6u0V1M7s2u0G2K9X3g2U0N6q4)9J5c8V1I4u0c8f1j5`.

使用这个工具可以很方便的 patch elfpeMachO 文件。本文以elf 为例。

通过交换导入导出符号

首先看第一个测试程序:

我们的目标是让他调用 puts 变成调用 system

方案一

修改 libc 中的相关符号,然后使用 LD_LIBRARY_PATH 加载我们修改后的库。

首先拿到 puts 和 system 符号对象,然后交换他们的名称。

paste image
成功

方案二

直接修改目标文件的导入符号,代码如下

paste image

直接增加代码进行patch

测试程序:

目标是hook exp 函数,直接增加一个 segments , 然后劫持函数指针到这里。首先编译一个 lib 用来提供用于 hook 的代码。

hook.c 的内容:

然后看脚本内容,很清晰。

paste image

测试程序

hook.c 内容,hook memcpy, 打印内容。

hook 脚本

paste image

参考:

8bcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6D9K9h3g2X3i4K6u0W2M7i4g2S2M7X3E0K6L8r3q4T1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0U0i4K6u0r3N6s2g2@1L8%4u0A6j5h3I4K6i4K6u0r3

4e1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9N6h3&6A6P5r3u0G2j5$3S2K6i4K6u0r3M7r3q4@1j5$3S2C8K9i4b7`.


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 4230
活跃值: (1435)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
2
感谢分享!
2017-11-7 23:54
0
雪    币: 0
活跃值: (1248)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2017-11-8 10:02
0
雪    币: 346
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
谢谢分享!
2017-11-8 10:18
0
雪    币: 55
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
thxs  for  share
2017-12-14 11:26
0
雪    币: 261
活跃值: (64)
能力值: ( LV7,RANK:111 )
在线值:
发帖
回帖
粉丝
6
比较简单的缓解fsb,lief改printf的got表到__printf_chk也行。。
2017-12-17 21:25
0
雪    币: 27
活跃值: (637)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
加section搞个wrapper也行  2333
2017-12-22 10:21
0
游客
登录 | 注册 方可回帖
返回