论坛首页 安全工具分享区 阅读主题

[原创] libtiny unidbg简单补环境

81 浏览 3 回复
#1 楼主 2026-06-01 21:09:09
模拟执行libtiny.so计算x-mini相关的参数。先搭建基础框架, 代码如下:运行结果:按照hook顺序调用初始化函数,运行需要补充的环境:这是主要需要补充的函数之一,也是开始比较重要的点, 先简单补充如下,通过第一个参数int来写分支补充不同的功能。这样补充,有报错,需要把DvmMethod类的构造函数权限改成public, 接着给DvmClass函数中增加一个setMethodId的函数,仿造DvmClass中getMethodID相关的函数,简单粗暴的给添加到对应的map中。补充之后报错如上所示进入第一层报错信息,代码如上所示,这里没有实现,直接抛出异常,接下来尝试补全这里的实现,大致仿造函数_ToReflectedMethod函数的实现和需要补充的函数,猜测这里可能需要从DvmMethod对象获取到MethodIDlong类型。所以补充如下:补充之后运行结果如上,第一个初始化函数成功执行完成。继续第二个初始化函数运行开补:运行补运行补第二个初始化函数执行完成。第三个初始化函数运行不用补,直接能执行。初始化函数调用完成之后,正式进入参数计算相关的调用。运行补运行补运行补, DvmField类构造函数权限public运行补运行补运行补运行补运行补运行补运行补运行补运行
补运行补运行补,这里注意有特殊情况运行补运行补运行补,这里注意输入参数运行补运行补运行进入报错位置,看到报错是因为dvmMehtod是null,并且根据前面的日志,大概率是和android/content/Intent相关的问题,但是并没有补充过,这个类相关的环境,继续向前看,应该是分支环境没有补充,看到309143350情况没有补全,顺带将其他没有补全的情况也都给补全。运行补运行补运行补, 注意这里的调用又是有参数的运行补运行补运行补运行补运行补运行补运行补运行补运行补运行补运行从上图中可以看出,出错的位置是prctl系统调用中有不支持的option类型,简单粗暴无脑补全即可,网上搜索prctl.h对应头文件简单看一下对应的值,运行补运行补运行补运行完成。一切都以能跑出结果为主。public class Xhs859Tiny extends AbstractJni {

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289620.htm
#2 2026-06-01 21:09:09
感谢分享
#3 2026-06-01 21:09:09
感谢分享
#4 2026-06-01 21:09:09
感谢分享

请登录后参与讨论

立即登录 注册账号