我尝试编译一个C文件,该文件使用虚拟alloc解密并执行rc-4加密的shellcode。
现在我得到一个错误:
“在rc-4.c:2包含的文件中:rc4.h:62:11:致命错误: openssl / opensslconf.h:没有这样的文件或目录 #include
/ * OPENSSL_NO_RC4,RC4_INT * /“
我的编译命令是: i586-mingw32msvc-gcc rc-4.c -o test.exe -lcrypto
起初mingw32给我的错误是找不到rc-4.h。 我通过在当前目录中复制rc-4.h并将其包含在#include“ rc-4.h”中来解决了该问题
代码的前两行
```
#include <windows.h>
#include "rc4.h"
```
如何解密和执行rc-4 shellcode:
int lpBufSize = sizeof(int) * PAYLOADSIZE;
LPVOID lpBuf = VirtualAlloc(NULL, lpBufSize, MEM_COMMIT, 0x04);
memset(lpBuf, '\0', lpBufSize);
RC4(RC4KEY, payload, (char*) lpBuf, PAYLOADSIZE);
MessageBox(NULL, (char*) lpBuf, "Test", MB_OK);
return 0;
预期输出应为已编译的test.exe文件
答案 0 :(得分:0)
我正在使用MinGW64,因为这是这里安装的。我知道标签“ mingw32”,希望还可以。
1。编译
头文件rc4.h
位于路径<path-of-installation>/<version>/mingw64/opt/include
中,因此必须将其作为-I
的参数:
i586-mingw32msvc-gcc -c -I "<path-of-installation>/<version>/mingw64/opt/include" rc-4.c -o rc-4.o
您还可以设置CPATH
或C_INCLUDE_PATH
,请参见The C Preprocessor: Environment Variables。
2。关联
注意:由于您没有提供足够的源代码,因此无法尝试。
库文件libcrypto.a
位于路径<path-of-installation>/<version>/mingw64/opt/lib
中,因此必须将其作为-L
的参数:
i586-mingw32msvc-gcc -L "<path-of-installation>/<version>/mingw64/opt/lib" rc-4.o -lcrypto -o test.exe