gpt4 book ai didi

C++ Base64 字符串 "Z2V0UGFzc3dvcmQ="作为函数名

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:47 27 4
gpt4 key购买 nike

一些关于我的快速信息我从 2008 年开始成为 MalwareResearcher,从 2013 年开始成为 C++/MASM 开发人员。Atm 我使用恶意软件样本和 CrackMe 来提高和测试我的技能。

我找到了一个非常好的,但卡在了编码部分 :(

来自 crackme 的代码片段:

MOV EAX,004260AC                               ; ASCII "TUFMQ0hPLkRMTA=="
CALL 00407B10
JMP SHORT 004049FB
XOR EAX,EAX
MOV DWORD PTR SS:[LOCAL.1],-1
TEST EAX,EAX
JZ 00404AC3
MOV EAX,DWORD PTR DS:[EAX]
PUSH EAX ; /FileName
CALL DWORD PTR DS:[<&kernel32.LoadLibraryA>] ; \KERNEL32.LoadLibraryA
TEST EAX,EAX
JZ 00404AC3
PUSH 004260C0 ; /Procname = "Z2V0UGFzc3dvcmQ="
PUSH EAX ; |hModule
CALL DWORD PTR DS:[<&kernel32.GetProcAddress>] ; \KERNEL32.GetProcAddress

crackme 尝试使用 LoadLibraryA 加载一个名为 MALCHO.dll 的 dll,然后尝试执行一个名为 Z2V0UGFzc3dvcmQ= 的函数。

之后,它使用从 dll 函数 Z2V0UGFzc3dvcmQ= 收集的密码解密其资源之一。

作为 crackme 的一部分,我似乎必须制作这个 dll。

通过分析这个标本的另一部分,我能够得到解密所需的密码。

所以“只”需要 dll 编码才能到达 crackme 的结尾:)

在将 TUFMQ0hPLkRMTA== 解密为 MALCHO.dll 时,其函数名称 Z2V0UGFzc3dvcmQ= 似乎未解密为 getPassword.

我现在不知道如何在 C++ 中使用 base64 编码的字符串作为函数名。

由于 Z2V0UGFzc3dvcmQ= 中的 = 出现语法错误 :(

我的 MALCHO.dll 来源:

MALCHO.h:

#ifdef MALCHODLL_EXPORTS
#define MALCHOFUNCSDLL_API __declspec(dllexport)
#else
#define MALCHOFUNCSDLL_API __declspec(dllimport)
#endif

namespace MALCHO
{
//This class is exported from the MalchoFuncsDll.dll
class MalchoFuncs
{
public:
// Returns password
static MALCHOFUNCSDLL_API char* Z2V0UGFzc3dvcmQ=(char* p);
};
}

MALCHO.cpp

#include "stdafx.h"
#include "MALCHO.h"


namespace MALCHO
{
char* MalchoFuncs::Z2V0UGFzc3dvcmQ=(char* p)
{
char* pw = "Yes I did it!";
return pw;
}
}

提前致谢

马斯迪

最佳答案

您不能将 = 用作 C++ 名称的一部分,但 GetProcAddress 是一个操作系统函数,它不关心您使用的语言。它只是进行字符串匹配,也不是很花哨。它真的只关心 \0 因为它终止了字符串。因此,如果您传递 Z2V0UGFzc3dvcmQ=\0,它将查找名为 Z2V0UGFzc3dvcmQ=\0 的导出。

LINK.EXE 的链接器定义文件的语法不允许您添加这样的名称,但同样 GetProcAddress 不关心是谁将名称放入导出表中。最简单的解决方案可能是添加 Z2V0UGFzc3dvcmQ_\0 然后覆盖 _

关于C++ Base64 字符串 "Z2V0UGFzc3dvcmQ="作为函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21514125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com