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;
|
|
|
|
}
|