Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
888H355
ComWeChatRobot
提交
bb03a235
C
ComWeChatRobot
项目概览
888H355
/
ComWeChatRobot
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ComWeChatRobot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bb03a235
编写于
6月 04, 2022
作者:
L
ljc545w
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修复部分已知BUG
上级
44599f26
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
21 addition
and
10 deletion
+21
-10
CWeChatRobot/pch.cpp
CWeChatRobot/pch.cpp
+21
-10
Release/CWeChatRobot.exe
Release/CWeChatRobot.exe
+0
-0
未找到文件。
CWeChatRobot/pch.cpp
浏览文件 @
bb03a235
...
...
@@ -81,17 +81,21 @@ DWORD GetWeChatRobotBase() {
return
dwHandle
;
}
void
GetProcOffset
(
wchar_t
*
workPath
)
{
BOOL
GetProcOffset
(
wchar_t
*
workPath
)
{
wchar_t
*
dllpath
=
new
wchar_t
[
MAX_PATH
];
swprintf_s
(
dllpath
,
MAX_PATH
,
L"%ws%ws%ws"
,
workPath
,
L"
\\
"
,
dllname
);
string
name
=
_com_util
::
ConvertBSTRToString
((
BSTR
)
dllpath
);
if
(
!
isFileExists_stat
(
name
))
{
MessageBoxA
(
NULL
,
name
.
c_str
(),
"文件不存在"
,
MB_ICONWARNING
);
return
;
return
1
;
}
HMODULE
hd
=
LoadLibraryW
(
dllpath
);
if
(
!
hd
)
return
;
if
(
!
hd
)
{
wchar_t
info
[
MAX_PATH
]
=
{
0
};
swprintf_s
(
info
,
MAX_PATH
,
L"无法加载位于%ws的%ws"
,
workPath
,
dllname
);
MessageBox
(
NULL
,
info
,
L"致命错误"
,
MB_ICONWARNING
);
return
1
;
}
DWORD
WeChatBase
=
(
DWORD
)
GetModuleHandleW
(
dllname
);
DWORD
SendImageProcAddr
=
(
DWORD
)
GetProcAddress
(
hd
,
SendImageRemote
);
...
...
@@ -153,6 +157,7 @@ void GetProcOffset(wchar_t* workPath) {
FreeLibrary
(
hd
);
delete
[]
dllpath
;
dllpath
=
NULL
;
return
0
;
}
DWORD
GetWeChatPid
()
{
...
...
@@ -174,13 +179,16 @@ DWORD StartRobotService() {
}
wstring
wworkPath
=
GetComWorkPath
();
wchar_t
*
workPath
=
(
wchar_t
*
)
wworkPath
.
c_str
();
if
(
GetProcOffset
(
workPath
)
!=
0
)
{
hProcess
=
NULL
;
return
1
;
}
hProcess
=
OpenProcess
(
PROCESS_ALL_ACCESS
,
FALSE
,
wxPid
);
bool
status
=
Injert
(
wxPid
,
workPath
);
if
(
status
==
1
)
{
if
(
status
!=
0
)
{
CloseHandle
(
hProcess
);
return
status
;
hProcess
=
NULL
;
}
GetProcOffset
(
workPath
);
return
status
;
}
...
...
@@ -189,11 +197,14 @@ DWORD StopRobotService() {
if
(
!
hProcess
)
return
cpid
;
DWORD
wxPid
=
GetWeChatPid
();
if
(
wxPid
&&
GetWeChatRobotBase
())
{
CheckFriendStatusFinish
();
StopReceiveMessage
();
RemoveDll
(
wxPid
);
}
ZeroMemory
((
wchar_t
*
)
SelfInfoString
.
c_str
(),
SelfInfoString
.
length
()
*
2
+
2
);
CloseHandle
(
hProcess
);
hProcess
=
NULL
;
return
cpid
;
}
...
...
Release/CWeChatRobot.exe
浏览文件 @
bb03a235
无法预览此类型文件
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录