【问题标题】:fatal error: openssl/opensslconf.h: No such file or directory致命错误:openssl/opensslconf.h:没有这样的文件或目录
【发布时间】:2019-08-27 12:50:34
【问题描述】:

我尝试编译一个 C 文件,该文件使用虚拟分配解密并执行一个 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 文件

【问题讨论】:

  • 你能把那个错误信息翻译成英文吗?

标签: c gcc openssl mingw32 rc4-cipher


【解决方案1】:

我正在使用 MinGW64,因为这是安装在这里的。我知道标签“mingw32”,希望没问题。

1.编译

头文件 rc4.h 位于路径 &lt;path-of-installation&gt;/&lt;version&gt;/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 位于&lt;path-of-installation&gt;/&lt;version&gt;/mingw64/opt/lib 路径中,因此必须将其作为参数提供给-L

i586-mingw32msvc-gcc -L "<path-of-installation>/<version>/mingw64/opt/lib" rc-4.o -lcrypto -o test.exe

【讨论】:

    猜你喜欢
    • 2012-10-13
    • 2018-10-02
    • 2020-04-13
    • 2017-09-19
    • 1970-01-01
    • 2022-07-21
    • 2017-05-09
    • 2021-05-15
    • 2014-10-31
    相关资源
    最近更新 更多