Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
夜猫逐梦
MyOpen
提交
12f71ba5
M
MyOpen
项目概览
夜猫逐梦
/
MyOpen
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MyOpen
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
12f71ba5
编写于
3月 13, 2024
作者:
K
Knine
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
frida-node测试
上级
33b9f6d4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
67 addition
and
0 deletion
+67
-0
course/frida/03_frida-node/foo/main.js
course/frida/03_frida-node/foo/main.js
+67
-0
未找到文件。
course/frida/03_frida-node/foo/main.js
0 → 100644
浏览文件 @
12f71ba5
// node main.js MyTestMFC-vcpkg.exe
import
frida
from
"
frida
"
;
// 消息通知处理函数
function
onMessage
(
message
,
data
)
{
if
(
message
.
type
===
'
send
'
)
{
console
.
log
(
'
[*]
'
,
message
.
payload
);
}
else
if
(
message
.
type
===
'
error
'
)
{
console
.
error
(
message
.
stack
);
}
}
async
function
获取进程ID
()
{
let
exeName
=
process
.
argv
[
2
]
console
.
log
(
"
exeName:
"
,
exeName
)
var
device
=
await
frida
.
getLocalDevice
();
var
processes
=
await
device
.
enumerateProcesses
();
// 尽量使用管理员权限执行脚本。
var
pid
=
-
1
;
processes
.
forEach
(
async
(
p_
)
=>
{
// console.log(p_.name, p_.pid, p_);
if
(
p_
.
name
==
exeName
)
{
// 找到第一个就是
if
(
pid
==
-
1
)
{
pid
=
p_
.
pid
;
}
}
});
console
.
log
(
"
主进程 pid =
"
+
pid
);
return
pid
;
}
async
function
获取注入脚本
()
{
return
`
console.log("开始注入脚本");
// 获取MessageBoxA地址
const funcAddr = Module.findExportByName('user32.dll', 'MessageBoxA')
// hook MessageBoxA
Interceptor.attach(funcAddr, {
// 进入函数前打印第一个参数(从0开始计算,第0个参数为句柄)
onEnter(args) {
send("HOOK MessageBoxA args[1] = " + args[1].readAnsiString())
send("HOOK MessageBoxA args[2] = " + args[2].readAnsiString())
}
});
`
}
async
function
main
()
{
let
jsSource
=
await
获取注入脚本
()
const
pid
=
await
获取进程ID
();
if
(
pid
==
-
1
)
{
return
-
1
;
}
let
session
=
await
frida
.
attach
(
pid
);
let
script
=
await
session
.
createScript
(
jsSource
);
script
.
message
.
connect
(
onMessage
);
await
script
.
load
();
}
main
().
catch
(
error
=>
{
console
.
error
(
error
);
});
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录