首页
社区
课程
招聘
[原创][shellcode框架(5)] 多文件shellcode框架
发表于: 2017-4-15 11:14 3982

[原创][shellcode框架(5)] 多文件shellcode框架

2017-4-15 11:14
3982

   做shellcode开发很久了,以往就做简单的补丁,最近打算使用shellcode开发大工程。发现TK提供的shellcode模板不能满足现状了,打算将代码分门别类的放在不同的文件里,多文件shellcode框架的需求就来了。以前我也开题询问过有经验的朋友。

[求助]shellcode开发 如何将多个c文件中的函数合并一起dump为二进制文件 http://bbs.pediy.com/thread-216548.htm

从理论到实践,以及到代码编码测试,2天的时间。多文件shellcode框架就完成了,进过几周的开发测试完善,算是能满足需要了。

代码我不打算贴出来了(几年后我打算把整个工程共享)。这里我只说说实现原理

明确下目标:1.将shellcode涉及的函数紧密的排列在一起,2准确的找到shellcode其实位置和结束位置大小,

解决以上问题的办法 1. 利用(linker->Debugging-Getnerate Map File)map文件获取到shellcode所涉及的函数名,2将所需函数名存放到 funs.txt中;再利用linker中的命令行中添加  /ORDER:@"funs.txt" ;3将shellcode函数放在funs.txt文件的开头,将endSign放在末尾,计算大小shellcodeSize = (DWORD)endSign-(DWORD)shellcode ; dump从shellcode函数开始,大小sheLlcodesize就可以了。

我自己写个gui的工程辅助快速开发测试。

0. 18496 18.06K 显示当前shellcode大小。

1. Execute  直接调用 shellcode() 函数可以vs10辅助动态调试

2. MemoryExec 使用virtualAlloc 申请内存copy shelloce到内存执行

3. Jnject Exec 将shellcode 注入svchost.exe 测试

4 DUMP 直接dumpshellcode到文件,支持简单的异或编码

5. Read Map 读取map文件中的函数,x_ 作为过滤条件(所以函数都要有x_开头)

6. Rand funs 打乱函数顺序

7 Write Funs 将函数写入到 funs.txt文件中

8. shellcode 将写入funs.txt第一行位置

9. EndSign 写在funs.txt最后一行

10. ConfigData将作为存放配置文件的函数写入到funs.txt中

11. Open Map file 打开浏览map文件

12 Open funs file 打开浏览funs.txt文件

13 99funs 显示当前函数个数

14 Global:580显示了当前 global 全局变量的大小。


这里我讲解下 将shellcode代码紧密编译在一起的流程


vs10 启动,运行程序 1. ReadMap 读取map文件中的函数到列表,2 Rand Funs打乱顺序(可省略) 3.Write Funs 将函数写入到funs.txt中,关闭程序再次利用vs10编译完成。这样shellcode就在一起了。 前提:设置vs工程生成map和使用funs.txt中的函数列表作为函数安排顺序


这里我将所有的shellocode代码文件都是用.c文件,这里需要设置下预编译头; mfc的代码在使用。c文件的时候要 

extern "C" {
	#include "Server.h"
// 	#include <vector>
// 	#include <stdio.h>
// //	#include <algorithm>
};

导入。


不明白的可以留言


这样所有的函数就能排列在一起了。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2018-3-12 16:32 被msf编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//