首页
社区
课程
招聘
[原创]记一次基于unidbg模拟执行的去除ollvm混淆
2023-5-3 23:00 47870

[原创]记一次基于unidbg模拟执行的去除ollvm混淆

2023-5-3 23:00
47870
收藏
点赞50
打赏
分享
最新回复 (49)
雪    币: 377
活跃值: (427)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
yinX 2 2023-6-1 19:51
26
1
我发现可以不需要显式地load libc.so、libm.so等文件,\unidbg\unidbg-android\src\main\resources\android\ 这个地方自带了sdk19和sdk23,只要把AndroidResolver设为23,它就会自动加载所需的系统so
雪    币: 187
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
Ruinv6 2023-6-13 16:51
27
0
大佬,有联系方式可以留个吗 请教下问题
雪    币: 245
活跃值: (445)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
alds 2023-6-13 23:13
28
0
大佬,有没有研究过java平坦流混淆去除?
雪    币: 3272
活跃值: (4415)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
乐子人 3 2023-6-14 14:41
29
0
alds 大佬,有没有研究过java平坦流混淆去除?
没有
雪    币: 127
活跃值: (880)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhonghuayi 2023-6-28 09:53
30
0
写的很好,大佬能多详细的分享一些基础的内容吗?让新人学习学习。
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_jippoctc 2023-7-4 11:30
31
0
大牛,请问一下学习路线是怎样的
雪    币: 361
活跃值: (482)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
mb_kbkqyusp 2023-7-8 11:48
32
0
大佬这个AntiOllvm.java 下载过期了,可以在分享一次吗
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
橙子的肚子 2023-7-10 10:57
33
0
感谢分享
雪    币: 248
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
@=llfly 2023-7-25 10:42
34
0
赞,感谢分享!
雪    币: 7
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bluth 2023-8-11 01:21
35
0


请教一下大佬,第一次跑完BR X9,之后,这些分支没有执行到,根据提示修改寄存器w8的值跳转

这里的这个跳转实际测试来看,好像没有跳转到,不知道是不是版本不一样的原因


是否有其他思路这里让没有执行到的分支执行一下   

雪    币: 22
活跃值: (3699)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
New对象处 2023-8-17 20:07
36
0
bluth 请教一下大佬,第一次跑完BR X9,之后,这些分支没有执行到,根据提示修改寄存器w8的值跳转这里的这个跳转实际测试来看,好像没有跳转到,不知道是不是版本不一样的原因是否有其他思路这里让没有执行到的分支 ...
你将62144 的w8改为0,会执行62158
雪    币: 22
活跃值: (3699)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
New对象处 2023-8-17 20:10
37
0
bluth 请教一下大佬,第一次跑完BR X9,之后,这些分支没有执行到,根据提示修改寄存器w8的值跳转这里的这个跳转实际测试来看,好像没有跳转到,不知道是不是版本不一样的原因是否有其他思路这里让没有执行到的分支 ...
按照我说的,加入造成死循环,那么就按照楼主说的,标志当前位置,下次调用procBr时就patch,退出
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_justght 2023-11-16 19:20
38
0
大佬,像getRegValue,readInt64是哪个库的
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_justght 2023-11-17 14:44
39
0
大佬,String condBr = "b"+cond.toLowerCase(Locale.ROOT) + " 0x"+ Integer.toHexString((int) (offset1 - addinstaddr)); 这个地方为什么还需要 减去 addinstaddr
雪    币: 3272
活跃值: (4415)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
乐子人 3 2023-11-18 03:25
40
0
wx_justght 大佬,像getRegValue,readInt64是哪个库的[em_85]
我自己写的hh
雪    币: 62
活跃值: (572)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
万里星河 2023-11-18 18:48
41
0
支持一下 不过使用frida stalker效果也不错
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
yxbbing 2023-12-23 09:11
42
0
 memory.setLibraryResolver(new AndroidResolver(26)); 26版本这么来的有吗? unidbg原码里只有19,23
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
lemontree@me 2024-1-17 18:15
43
0
想问下代码里面的libtprt5.so和libtprt6.so是怎么来的,原apk里面就是这样的名字吗
雪    币: 20
活跃值: (643)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
肉蚌葱鸡 2024-1-23 09:48
44
0
写的真好 高级帖
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
蜡笔晓辉 2024-2-21 12:48
45
0
厉害了
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_nprzkbju 2024-2-25 11:59
46
0

你好,冒昧问一句,这个地方你是不是写错了。 文章第一张截图可知W11=0x6E221A17,W12=0x6E142EC8 文章说用unidbg修改0x5E5AC处W8的值为1


 可是 如果上面一条指令w8等于0,那么W8=W11>W12,下面会执行B loc_5E678 如果W8不等于0,那么W8=W12,依然会执行B loc_5E678, b.lt是小于才会跳转,无论W8等于W11还是W12始终无法是进入B.LT loc_5E5CC, 你是怎么进入loc_5E5CC分支的。


另外感觉你这里面,好多值都是肉眼观察然后硬编码上去的, 你是不是看了程序运行流程,然后肉眼剔除掉多的部分,然后实现的还原, 那这样好像没多少意义了,想问一下目前有没有通用一点的办法。

雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_cmrpibxs 2024-3-18 14:09
47
0
qdesy 请问reorderblock()函数中最后的这段代码里,toend和0x5E674L都是怎么得到的。toend被硬编码成private static final long toend = 0x5E6B ...
兄弟,能大家一起探讨下吗
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_cmrpibxs 2024-3-19 16:27
48
0
New对象处 666
大哥,能请教下相关问题吗
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_cmrpibxs 2024-3-19 16:29
49
0
秋狝 感谢分享
大哥,能请教下问题吗
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
heyonly 2024-4-17 11:54
50
0
感谢大佬的分享,在还原平坦化的时候,代码中的tbs.add(new TrueBlock(0x6e142ec8L,0x5E6B0)); 这个 0x5E6B0,不知道怎么来的,要是上传在分析时的样本就好了,这样我们便能分析 猜这些值怎么来的,或者大佬在文中解释下。感谢
游客
登录 | 注册 方可回帖
返回