学习易语言也有一段时间了 从来没发过贴子,最近在整理学习资料时发现了这段shellcode加载方式,个人感觉比LoadLibraryA加载DLL好一点 ,为了防止,时间一长我忘了它,所以选择放在论坛上。
shellcode_使用例子 (“c:\1.dll”) 返回 (0 )头部 = { 85, 137, 229, 49, 201, 100, 161, 48, 0, 0, 0, 139, 64, 12, 139, 112, 20, 173, 150, 173, 139, 88, 16, 139, 83, 60, 1, 218, 139, 82, 120, 1, 218, 139, 114, 32, 1, 222, 49, 201, 65, 173, 1, 216, 129, 56, 71, 101, 116, 80, 15, 133, 240, 255, 255, 255, 129, 120, 4, 114, 111, 99, 65, 15, 133, 227, 255, 255, 255, 129, 120, 8, 100, 100, 114, 101, 15, 133, 214, 255, 255, 255, 139, 114, 36, 1, 222, 102, 139, 12, 78, 73, 139, 114, 28, 1, 222, 139, 20, 142, 1, 218, 49, 201, 81, 102, 104, 121, 65, 102, 104, 97, 114, 102, 104, 98, 114, 102, 104, 76, 105, 102, 104, 97, 100, 102, 104, 76, 111, 84, 83, 255, 210, 129, 196, 12, 0, 0, 0, 89, 80, 255, 117, 8, 255, 208, 201, 194, 4, 0, 0, 0, 0, 0, 0, 0, 0 }指针地址 = 申请内存 (取字节集长度 (头部 ), )写到内存 (头部, 指针地址, )返回 (指针地址 )|
shellcode_调用子程序 | 整数型 | | |
调用地址 | 整数型 | | | | 参数1 | 整数型 | | | | 参数2 | 整数型 | | | | 参数3 | 整数型 | | | | 参数4 | 整数型 | | | | 参数5 | 整数型 | | | | 参数6 | 整数型 | | | | 参数7 | 整数型 | | | | 参数8 | 整数型 | | | | 参数9 | 整数型 | | | | 参数10 | 整数型 | | | | 参数11 | 整数型 | | | | 参数12 | 整数型 | | | | 参数13 | 整数型 | | | | 参数14 | 整数型 | | | | 参数15 | 整数型 | | | | 置入代码 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 })返回 (0 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 调用地址 | | | | b | 文本型 | | | a | | | | c | | | |
b = “这是一个测试内容”调用地址 = shellcode_初始化内存指针地址 ()a = shellcode_调用子程序 (调用地址, 取变量数据地址 (dll路径名 )) c = 取进程地址_ (a, “info”)shellcode_调用子程序 (c, 取变量数据地址 (b ), 取变量数据地址 (b )) 释放内存 (调用地址 )|
取进程地址_ | 整数型 | | |
kernel32.dll | |
GetProcAddress | |
模块句柄 | 整数型 | | | 进程名称 | 文本型 | | |
|