fatal error: openssl/opensslconf.h: No such file or directory

fatal error: openssl/opensslconf.h: No such file or directory

我尝试编译一个 C 文件,该文件使用虚拟分配解密并执行 rc-4 加密的 shellcode。

现在我得到一个错误:

"In file included from rc-4.c:2: rc4.h:62:11: fatal error: openssl/opensslconf.h: No such file or directory #include <openssl/opensslconf.h>/* 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, '[=11=]', lpBufSize);
        RC4(RC4KEY, payload, (char*) lpBuf, PAYLOADSIZE);
        MessageBox(NULL, (char*) lpBuf, "Test", MB_OK);
        return 0;

预期的输出应该是编译后的 test.exe 文件

我使用的是 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

你也可以设置CPATHC_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