WeChatFerry/spy/receive_transfer.cpp

40 lines
941 B
C++
Raw Normal View History

2023-04-18 23:23:41 +08:00
#include "receive_transfer.h"
#include "load_calls.h"
#include "log.h"
#include "util.h"
using namespace std;
extern WxCalls_t g_WxCalls;
extern DWORD g_WeChatWinDllAddr;
int ReceiveTransfer(string wxid, string transferid)
{
int rv = 0;
2023-04-19 23:17:15 +08:00
DWORD recvTransferCall = g_WeChatWinDllAddr + g_WxCalls.tf.call1;
DWORD recvTransferCall2 = g_WeChatWinDllAddr + g_WxCalls.tf.call2;
2023-04-18 23:23:41 +08:00
2023-04-19 23:17:15 +08:00
wstring wsWxid = String2Wstring(wxid);
wstring wsTid = String2Wstring(transferid);
2023-04-18 23:23:41 +08:00
2023-04-19 00:03:26 +08:00
LOG_DEBUG("Receiving transfer, from: {}, transferid: {}", wxid, transferid);
2023-04-18 23:23:41 +08:00
__asm {
2023-04-19 23:17:15 +08:00
pushad
sub esp, 0x30
mov ecx, esp
lea eax, wsTid
push eax
call recvTransferCall
lea ecx, dword ptr ds:[esp+0x14]
lea eax, wsWxid
push eax
call recvTransferCall
call recvTransferCall2
add esp, 0x30
mov rv, eax
popad
2023-04-18 23:23:41 +08:00
}
return rv;
}