首页
社区
课程
招聘
未解决 使用Frida打印被Hook函数的参数个数及内容 50雪币
发表于: 2024-10-11 10:03 2468

未解决 使用Frida打印被Hook函数的参数个数及内容 50雪币

2024-10-11 10:03
2468

平台:Windows11 x64下Hook某个CPP写的应用程序调用的DLL,我使用Frida已经附加到该进程中,且已经load该DLL。

1
2
3
4
console.log("targetAddress is: ",targetAddress);
 Interceptor.attach(ptr(targetAddress), {
    onEnter: function (args) {.....},
    onLeave: function (retval) {......});

现在,我已经Hook到了该函数的地址。我希望把第二个参数和第三个参数都打印出来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
已知该函数的原型如下:
int WINAPI iTest(HANDLE p_handle, tTestInfo *p_psInfo, tReturn *p_psStatus);
 
参数说明
p_hHandle   [in]
p_pstInfo   in out]
p_psStatus  [out]
 
第二个参数里面还包含有结构体:
typedef struct 
{
    BYTE        byType;         // [in]
    BYTE        byPos;          // [in]
    BYTE        abyable[8];     // [in]
    BYTE        abyPriority[8];     // [in]
    int         iTotalCount;        // [out]
    int         iUnknownCount;  // [out]
    tNumInfo        sNumInfo;       // [out] 这是个枚举类型的结构体
    tsInfo      sInfo;          // [out] 这是个枚举类型的结构体
    BYTE        abyReserved[32];    // 保留
} tTesttInfo;
 
第三个参数也是一个结构体指针:
typedef struct
{
    int         iLCode;             // [out] 
    int         iPCode;             // [out]
    int         iHandle;            // [out]
    int     iType;          // [out]
    char        acReturn[128];  // [out]
    char    acReserve[128];     // [out]
} tReturn;

但是无论在OnEnter还是OnLeave中,我都没有将该函数的参数值打印出来
console.log('[+] args[1] value: ' + Memory.readUtf8String(args[1]));
请大佬们帮忙分析一下,要如何才能将第二、三个复杂的参数打印出来?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 1121
活跃值: (717)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
2
既然纯JS打印不出来,试试Python的方式?JS把参数传给Python,由Python打印。
2024-10-11 14:41
0
雪    币: 2679
活跃值: (2303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
supertyj 既然纯JS打印不出来,试试Python的方式?JS把参数传给Python,由Python打印。
我只会python可以调用js代码,但是不知道如何把js的内容传递给ptyhon,请问大佬可以指点一下吗?
2024-10-11 15:00
1
雪    币: 1519
活跃值: (3298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
直接创建 CMudle 写 C 代码 把数据精准的拿到再处理 
2024-10-11 16:36
1
雪    币: 2679
活跃值: (2303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
iyue_t 直接创建 CMudle 写 C 代码 把数据精准的拿到再处理
请教一下大佬,我用Module.load()加载这个dll后续要如何操作?
2024-10-14 09:12
0
雪    币: 251
活跃值: (3213)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
一个一个打印出来就行了,,+8,+16打印就行了
2024-10-14 10:40
0
雪    币: 1519
活跃值: (3298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
xuri422 请教一下大佬,我用Module.load()加载这个dll后续要如何操作?
frida 支持直接编写C代码,处理结构体相对计算内存,无疑这个更简单
function c_example() {

  const cm = new CModule(`
#include <stdio.h>

int hello(int a, int b) {
  // printf("Hello World from CModule\\n");
  return a+b;
}
`);

  console.log(JSON.stringify(cm));

  const hello = new NativeFunction(cm.hello, 'int', ['int', 'int']);
  let sum = hello(5, 10);
  console.log(`sum:${sum}`)

}
2024-10-14 18:09
0
雪    币: 64
活跃值: (296)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
iyue_t frida 支持直接编写C代码,处理结构体相对计算内存,无疑这个更简单 function c_example() { const cm = new CModule(` #include ...
感谢,才发现可以写C代码,,
2024-10-14 21:48
0
雪    币: 64
活跃值: (296)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
iyue_t frida 支持直接编写C代码,处理结构体相对计算内存,无疑这个更简单 function c_example() { const cm = new CModule(` #include ...
亲测 IOS下无效
2024-10-15 03:30
0
雪    币: 2679
活跃值: (2303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
iyue_t frida 支持直接编写C代码,处理结构体相对计算内存,无疑这个更简单 function c_example() { const cm = new CModule(` #include ...
感谢大佬,我昨天看了CModule部分,确实是可以写C++代码,但现在的问题是,我已经hook的这个函数,要在C++代码里面怎样才能获取已经Hook到的参数值呢?比如我的动态库是test.dll,函数是int hello(int a, int b);我需要hook到a和b的值以及返回值,这里没太弄明白。
2024-10-15 08:24
0
雪    币: 1121
活跃值: (717)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
11
xuri422 我只会python可以调用js代码,但是不知道如何把js的内容传递给ptyhon,请问大佬可以指点一下吗?
https://zhuanlan.zhihu.com/p/101401252
2024-10-15 11:26
0
雪    币: 1121
活跃值: (717)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
12
supertyj https://zhuanlan.zhihu.com/p/101401252
1.1.3,on_message,console直接输出了[object Object],无法输出其正常的内容,因为jni_env实际上是一个对象,但是使用send的时候会自动将对象转json格式输出。
2024-10-15 11:27
0
雪    币: 1197
活跃值: (6056)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
.KK
13
native hook 无法获取到函数的参数个数,打印参数内容可以通过 hexdump 打印参数内容进行逐步调试(参数是地址的情况下
2024-10-29 11:25
0
游客
登录 | 注册 方可回帖
返回
//