最近突然特别想知道如何使用C/C++工具自动生成shellcode,在查找许多资料后,终于可以实现自动生成了自动生成的步骤
1 生成所使用API函数名称的hash值
2 生成所使用字符串的整数型数组形式
(以上两点有工具自动生成)
3 汇编遍历PEB,获取所需API的地址
4 完成功能代码
5 紧密排列所有用到的函数
6 开优化,编译,dump出特定地址段的机器码
通过汇编方式获取到API函数地址,从而实现非常多功能,
以下内容使用MSVC编译器 开o1优化后dump出的机器码,
先调用WinExec弹出mspaint后,再调用ExitProcess结束自身
置入代码 ({ 85, 139, 236, 81, 81, 86, 87, 199, 69, 248, 109, 115, 112, 97, 199, 69, 252, 105, 110, 116, 0, 232, 47, 0, 0, 0, 139, 240, 104, 185, 107, 255, 203, 86, 232, 73, 0, 0, 0, 104, 19, 185, 230, 37, 86, 139, 248, 232, 60, 0, 0, 0, 131, 196, 16, 141, 77, 248, 106, 1, 81, 255, 208, 106, 0, 255, 215, 95, 94, 139, 229, 93, 195, 100, 161, 24, 0, 0, 0, 51, 210, 139, 64, 48, 139, 64, 12, 139, 72, 28, 139, 9, 139, 65, 32, 102, 131, 120, 16, 46, 116, 6, 66, 131, 250, 2, 124, 238, 139, 65, 8, 195, 139, 84, 36, 4, 83, 85, 86, 139, 66, 60, 87, 51, 255, 139, 116, 16, 120, 3, 242, 139, 78, 32, 3, 202, 57, 126, 24, 118, 38, 139, 25, 3, 218, 51, 237, 235, 9, 107, 237, 33, 15, 190, 192, 3, 232, 67, 138, 3, 132, 192, 117, 241, 59, 108, 36, 24, 116, 16, 131, 193, 4, 71, 59, 126, 24, 114, 218, 51, 192, 95, 94, 93, 91, 195, 139, 70, 36, 141, 4, 120, 15, 183, 12, 16, 139, 70, 28, 141, 4, 136, 139, 4, 16, 3, 194, 235, 228 })
另外,你首先要安装并配置好C/C++开发环境,windows dll名称大小真是迷
|