首页
社区
课程
招聘
[分享]看雪3W班试题AntiOllvm去混淆
2022-1-7 11:19 10614

[分享]看雪3W班试题AntiOllvm去混淆

2022-1-7 11:19
10614

样本说明

来自看雪论坛对ollvm的算法进行逆向分析和还原,本文对照文章所指出的函数进行去混淆

二进制文件

去混淆函数

  • JNI_ONLoad 正常混淆,导出函数可以使用 --select-functions 选项设置名称。该函数主要调用 RegisterNatives 注册C函数
  • sub_12AE4 函数范围 0x12AE4-0x13AAC 存在很多小的混淆块,函数包含异常处理,还使用了向量指令,目前暂未添加该向量指令和异常处理,后续版本添加。
  • sub_1D1E8 函数范围 0x1D1E8-0x26300 函数体较大,存在很多小混淆块
  • sub_26300 函数范围 0x26300-0x26698 代码较少
  • sub_1B89C 函数范围 0x1B89C-0x1C918 函数,代码量中等

AntiOllvm 使用帮助

去混淆过程

  • 使用命令

    1
    2
    antiollvm.exe --config D:\retdec\install\share\retdec\decompiler-config.json .\libnative-lib.so --select-ranges 0x26300-0x26698,0x1b89c-0x1c918 --select-functions JNI_OnLoad
    antiollvm.exe --config D:\retdec\install\share\retdec\decompiler-config.json .\libnative-lib.so --select-ranges 0x1d1e8-26300

    第一条命令3个函数体较小,可以一次性去混淆。sub_1D1E8 函数较大单独运行避免占用内存太多

  • 生成文件

    • libnative-lib-anti.so 带有 anti 后缀是在原二进制文件的基础上替换掉混淆函数,多次运行不会覆盖它,只会在该文件基础上替换函数。
    • libnative-lib-compile.so 带有 compile 后缀是本次运行优化后的编译产物,该文件是可重定位文件,包含本次优化的所有相关变量和方法

去混淆效果对比

  • JNI_ONLoad

去混淆之前
JNI_ONLoad_before

 

去混淆之后
JNI_ONLoad_after

  • sub_12AE4

去混淆之前
sub_12ae4_before

 

去混淆之后
sub_12ae4_after

  • sub_1D1E8

去混淆之前
sub_1d1e8_before

 

去混淆之后
sub_1d1e8_after

  • sub_26300

去混淆之前
sub_26300_before

 

去混淆之后
sub_26300_after

  • sub_1B89C

去混淆之前
sub_1b89c_before

 

去混淆之后
sub_1b89c_after


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞2
打赏
分享
最新回复 (6)
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2022-1-7 11:52
2
0
antiollvm.exe 在哪下载呢?

广告?
雪    币: 8057
活跃值: (4345)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sunsjw 1 2022-1-7 12:50
3
0
广告贴,鉴定完毕
雪    币: 3258
活跃值: (2188)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
北辰制作 2022-1-7 13:19
4
0
海风月影 antiollvm.exe 在哪下载呢? 广告?
目前还未提供下载,过几天后提供,可以关注我的github仓库,到时会放在上面
雪    币: 4199
活跃值: (8370)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
nevinhappy 2 2022-1-7 14:06
5
0
帖子有点赞,也得加个“踩”的功能,不然费劲!!!
雪    币: 3010
活跃值: (3510)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
执着的追求 1 2022-1-7 14:50
6
0
这个是利用LLVM框架做的吗?曾经尝试过这个方法,没经过编译优化的还好,但是优化后实在是不知道怎么下手了!!!
雪    币: 3258
活跃值: (2188)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
北辰制作 2022-1-7 15:06
7
0
。_879907 这个是利用LLVM框架做的吗?曾经尝试过这个方法,没经过编译优化的还好,但是优化后实在是不知道怎么下手了!!!
retdec反编译加各种优化处理加llvm优化编译,肯定是能应对编译优化后的,不然就没意义了
游客
登录 | 注册 方可回帖
返回