gpt4 book ai didi

c++ - 从地址调用函数

转载 作者:行者123 更新时间:2023-11-28 04:36:47 24 4
gpt4 key购买 nike

我有这个asm函数调用

push ebx                                            | Lenght Of Buf
lea eax,dword ptr ss:[ebp] |
push eax | Address To Write Crypted Buf
push dword ptr ss:[ebp-18] | Address Of Orignal Buf
mov ecx,edi |
call 0x008EC40E | crypter function

我需要从注入(inject)到目标的 Dll(C++) 中调用此函数诸如此类的东西不起作用

typedef int func(void* Source, void* Dest, int len);
func* f = (func*)(base + 0x341E38);
int i = f(Src, Dst, sizeof Dst);

我不知道我的 C++ 是否正确,所以请帮忙。我需要更正 C++ 调用,在我运行此代码后目标进程崩溃

那是我的函数体

push ebp
mov ebp,esp
xor eax,eax
cmp byte ptr ds:[ecx+C],al
je lordsco.8EC44E
cmp dword ptr ds:[ecx],eax
je lordsco.8EC44E
cmp dword ptr ss:[ebp+C],eax
je lordsco.8EC44E
cmp dword ptr ss:[ebp+8],eax
je lordsco.8EC44E
cmp dword ptr ss:[ebp+10],eax
jle lordsco.8EC44E
push 1
lea eax,dword ptr ds:[ecx+8]
push eax
lea eax,dword ptr ds:[ecx+15]
push eax
add ecx,20
push ecx
push dword ptr ss:[ebp+10]
push dword ptr ss:[ebp+C]
push dword ptr ss:[ebp+8]
call lordsco.996560
add esp,1C
mov al,1
jmp lordsco.8EC450
xor al,al
pop ebp
ret C

那是 IDA Pro 声明的函数

char __thiscall CaypterFunc(int this, int a2, int a3, int a4)

那个 Func 调用这个 func

int *__cdecl CaypterFunc2(int a1, int a2, int a3, int a4, int a5, int *a6, int a7)

这是在发送函数中使用之前的游戏加密缓冲区所以我需要加密我的自定义缓冲区并在发送函数中使用它

那么,你看到了什么.?

最佳答案

您的函数签名:

typedef int func(void* Source, void* Dest, int len);

完全错误,或者更确切地说,不适合您要调用的函数。 IDA 将其识别为 __thiscall,因此它(很可能)是 C++ 成员函数。这意味着调用需要在堆栈上传递参数,并将 this 指针放入 ecx:

push ebx                                            | Lenght Of Buf
lea eax,dword ptr ss:[ebp] |
push eax | Address To Write Crypted Buf
push dword ptr ss:[ebp-18] | Address Of Orignal Buf

mov ecx,edi | <<< "this" pointer set here

call 0x008EC40E

所以 C++ 声明更接近于类似的东西

class Something;
typedef int (Something::*func)(void* Source, void* Dest, int len);

你仍然需要找出“某物”是什么,或者至少得到应该调用成员函数的 this 指针(在你提供的代码中,它位于 edi,但我们当然不知道它是如何到达那里的)。

关于c++ - 从地址调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51186302/

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