Refactoring
This commit is contained in:
parent
c9902b35ac
commit
abf980ecac
@ -170,10 +170,10 @@
|
|||||||
<ClInclude Include="framework.h" />
|
<ClInclude Include="framework.h" />
|
||||||
<ClInclude Include="get_contacts.h" />
|
<ClInclude Include="get_contacts.h" />
|
||||||
<ClInclude Include="load_calls.h" />
|
<ClInclude Include="load_calls.h" />
|
||||||
<ClInclude Include="monitor.h" />
|
|
||||||
<ClInclude Include="receive_msg.h" />
|
<ClInclude Include="receive_msg.h" />
|
||||||
<ClInclude Include="rpc_server.h" />
|
<ClInclude Include="rpc_server.h" />
|
||||||
<ClInclude Include="send_msg.h" />
|
<ClInclude Include="send_msg.h" />
|
||||||
|
<ClInclude Include="spy.h" />
|
||||||
<ClInclude Include="spy_types.h" />
|
<ClInclude Include="spy_types.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -184,10 +184,10 @@
|
|||||||
<ClCompile Include="exec_sql.cpp" />
|
<ClCompile Include="exec_sql.cpp" />
|
||||||
<ClCompile Include="get_contacts.cpp" />
|
<ClCompile Include="get_contacts.cpp" />
|
||||||
<ClCompile Include="load_calls.cpp" />
|
<ClCompile Include="load_calls.cpp" />
|
||||||
<ClCompile Include="monitor.cpp" />
|
|
||||||
<ClCompile Include="receive_msg.cpp" />
|
<ClCompile Include="receive_msg.cpp" />
|
||||||
<ClCompile Include="rpc_server.cpp" />
|
<ClCompile Include="rpc_server.cpp" />
|
||||||
<ClCompile Include="send_msg.cpp" />
|
<ClCompile Include="send_msg.cpp" />
|
||||||
|
<ClCompile Include="spy.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Midl Include="..\Rpc\rpc.idl">
|
<Midl Include="..\Rpc\rpc.idl">
|
||||||
|
@ -24,9 +24,6 @@
|
|||||||
<ClInclude Include="..\Rpc\rpc_h.h">
|
<ClInclude Include="..\Rpc\rpc_h.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="monitor.h">
|
|
||||||
<Filter>头文件</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="rpc_server.h">
|
<ClInclude Include="rpc_server.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@ -51,6 +48,9 @@
|
|||||||
<ClInclude Include="exec_sql.h">
|
<ClInclude Include="exec_sql.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="spy.h">
|
||||||
|
<Filter>头文件</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="dllmain.cpp">
|
<ClCompile Include="dllmain.cpp">
|
||||||
@ -62,9 +62,6 @@
|
|||||||
<ClCompile Include="..\Rpc\rpc_memory.cpp">
|
<ClCompile Include="..\Rpc\rpc_memory.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="monitor.cpp">
|
|
||||||
<Filter>源文件</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="rpc_server.cpp">
|
<ClCompile Include="rpc_server.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@ -86,6 +83,9 @@
|
|||||||
<ClCompile Include="exec_sql.cpp">
|
<ClCompile Include="exec_sql.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="spy.cpp">
|
||||||
|
<Filter>源文件</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Midl Include="..\Rpc\rpc.idl">
|
<Midl Include="..\Rpc\rpc.idl">
|
||||||
|
@ -1,35 +1,21 @@
|
|||||||
#include <stdlib.h>
|
#include "framework.h"
|
||||||
|
|
||||||
#include "monitor.h"
|
#include "spy.h"
|
||||||
#include "rpc_server.h"
|
|
||||||
|
|
||||||
extern HANDLE g_hEvent;
|
|
||||||
|
|
||||||
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
|
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
|
||||||
{
|
{
|
||||||
switch (ul_reason_for_call) {
|
switch (ul_reason_for_call) {
|
||||||
case DLL_PROCESS_ATTACH: {
|
case DLL_PROCESS_ATTACH: {
|
||||||
// MessageBox(NULL, L"RpcStartServer", L"Hey", 0);
|
// MessageBox(NULL, L"InitSpy", L"DllMain", 0);
|
||||||
if (InitDLL() != 0) {
|
InitSpy(hModule);
|
||||||
// Exit
|
|
||||||
FreeLibraryAndExitThread(hModule, 0);
|
|
||||||
}
|
|
||||||
HANDLE rpcThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)RpcStartServer, hModule, NULL, 0);
|
|
||||||
if (rpcThread != 0) {
|
|
||||||
CloseHandle(rpcThread);
|
|
||||||
}
|
|
||||||
g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // 创建消息句柄
|
|
||||||
HANDLE mThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Monitor, hModule, NULL, 0);
|
|
||||||
if (mThread != 0) {
|
|
||||||
CloseHandle(mThread);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DLL_THREAD_ATTACH:
|
case DLL_THREAD_ATTACH:
|
||||||
case DLL_THREAD_DETACH:
|
case DLL_THREAD_DETACH:
|
||||||
break;
|
break;
|
||||||
case DLL_PROCESS_DETACH: {
|
case DLL_PROCESS_DETACH: {
|
||||||
RpcStopServer();
|
// MessageBox(NULL, L"DestroySpy", L"DllMain", 0);
|
||||||
|
DestroySpy();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "framework.h"
|
|
||||||
|
|
||||||
int InitDLL(void);
|
|
||||||
DWORD WINAPI Monitor(HMODULE hModule);
|
|
||||||
int IsLogin();
|
|
@ -1,3 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
void ListenMessage();
|
void ListenMessage();
|
||||||
|
void UnListenMessage();
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
#include "exec_sql.h"
|
#include "exec_sql.h"
|
||||||
#include "get_contacts.h"
|
#include "get_contacts.h"
|
||||||
#include "monitor.h"
|
|
||||||
#include "rpc_h.h"
|
#include "rpc_h.h"
|
||||||
#include "rpc_server.h"
|
#include "rpc_server.h"
|
||||||
#include "sdk.h"
|
#include "sdk.h"
|
||||||
#include "send_msg.h"
|
#include "send_msg.h"
|
||||||
|
#include "spy.h"
|
||||||
#include "spy_types.h"
|
#include "spy_types.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
@ -16,6 +16,7 @@ using namespace std;
|
|||||||
extern HANDLE g_hEvent;
|
extern HANDLE g_hEvent;
|
||||||
extern MsgQueue_t g_MsgQueue;
|
extern MsgQueue_t g_MsgQueue;
|
||||||
extern const MsgTypesMap_t g_WxMsgTypes;
|
extern const MsgTypesMap_t g_WxMsgTypes;
|
||||||
|
extern int IsLogin(void);
|
||||||
|
|
||||||
int server_IsLogin() { return IsLogin(); }
|
int server_IsLogin() { return IsLogin(); }
|
||||||
|
|
||||||
|
@ -1,40 +1,13 @@
|
|||||||
#include <atlstr.h>
|
#include "load_calls.h"
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "load_calls.h"
|
|
||||||
#include "monitor.h"
|
|
||||||
#include "receive_msg.h"
|
#include "receive_msg.h"
|
||||||
|
#include "rpc_server.h"
|
||||||
|
#include "spy.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
HANDLE g_hEvent = NULL;
|
HANDLE g_hEvent = NULL;
|
||||||
WxCalls_t g_WxCalls = { 0 };
|
WxCalls_t g_WxCalls = { 0 };
|
||||||
DWORD g_WeChatWinDllAddr = 0;
|
DWORD g_WeChatWinDllAddr = 0;
|
||||||
|
|
||||||
int InitDLL(void)
|
|
||||||
{
|
|
||||||
wchar_t version[16] = { 0 };
|
|
||||||
|
|
||||||
g_WeChatWinDllAddr = (DWORD)LoadLibrary(L"WeChatWin.dll"); //获取wechatWin模块地址
|
|
||||||
if (g_WeChatWinDllAddr == 0) {
|
|
||||||
MessageBox(NULL, L"获取wechatWin.dll模块地址失败", L"错误", 0);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!GetWeChatVersion(version)) { //获取微信版本
|
|
||||||
MessageBox(NULL, L"获取微信版本失败", L"错误", 0);
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LoadCalls(version, &g_WxCalls) != 0) { //加载微信版本对应的Call地址
|
|
||||||
MessageBox(NULL, L"不支持当前版本", L"错误", 0);
|
|
||||||
return -3;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD WINAPI Monitor(HMODULE hModule)
|
DWORD WINAPI Monitor(HMODULE hModule)
|
||||||
{
|
{
|
||||||
ListenMessage();
|
ListenMessage();
|
||||||
@ -42,6 +15,40 @@ DWORD WINAPI Monitor(HMODULE hModule)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InitSpy(HMODULE hModule)
|
||||||
|
{
|
||||||
|
wchar_t version[16] = { 0 };
|
||||||
|
|
||||||
|
g_WeChatWinDllAddr = (DWORD)LoadLibrary(L"WeChatWin.dll"); //获取wechatWin模块地址
|
||||||
|
if (g_WeChatWinDllAddr == 0) {
|
||||||
|
MessageBox(NULL, L"获取wechatWin.dll模块地址失败", L"错误", 0);
|
||||||
|
FreeLibraryAndExitThread(hModule, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!GetWeChatVersion(version)) { //获取微信版本
|
||||||
|
MessageBox(NULL, L"获取微信版本失败", L"错误", 0);
|
||||||
|
FreeLibraryAndExitThread(hModule, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LoadCalls(version, &g_WxCalls) != 0) { //加载微信版本对应的Call地址
|
||||||
|
MessageBox(NULL, L"不支持当前版本", L"错误", 0);
|
||||||
|
FreeLibraryAndExitThread(hModule, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||||
|
HANDLE rpcThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)RpcStartServer, hModule, NULL, 0);
|
||||||
|
if (rpcThread != 0) {
|
||||||
|
CloseHandle(rpcThread);
|
||||||
|
}
|
||||||
|
|
||||||
|
HANDLE mThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Monitor, hModule, NULL, 0);
|
||||||
|
if (mThread != 0) {
|
||||||
|
CloseHandle(mThread);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DestroySpy() { RpcStopServer(); }
|
||||||
|
|
||||||
int IsLogin(void)
|
int IsLogin(void)
|
||||||
{
|
{
|
||||||
if (g_WeChatWinDllAddr == 0) {
|
if (g_WeChatWinDllAddr == 0) {
|
Loading…
Reference in New Issue
Block a user