首页
社区
课程
招聘
[原创]ARM64 OLLVM反混淆
发表于: 2019-6-29 16:19 48115

[原创]ARM64 OLLVM反混淆

2019-6-29 16:19
48115
收藏
免费 45
支持
分享
最新回复 (53)
雪    币: 196
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
无名侠 什么鬼东西????
请问大佬还开培训吗?想学
2019-10-20 19:23
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
27
arm反混淆貌似解决不了 它没有csel分支指令
2019-10-23 11:28
0
雪    币: 922
活跃值: (2952)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
28
以后工作要有个本科学历当敲门砖的,对你将来职业发展有好处。小伙子很不错啊,希望你继续努力。(特意登录多年不上的账号来给你留言)
2019-11-19 15:07
0
雪    币: 180
活跃值: (1328)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
29
学历还是很重要的,加油!
2019-12-10 09:48
0
雪    币: 6
活跃值: (1201)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
不错,先支持一下
2019-12-10 09:55
0
雪    币: 36
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
31
谢谢楼主分享
2019-12-10 16:10
0
雪    币: 2221
活跃值: (4602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
Dstlemoner 为什么要复读。。。。。专升本都可以。。。。复读浪费时间。。
复读如果可以提升一个阶段,那么可以说是从长远看,收益最大的事情了 。
在第一学历歧视的大环境下, 专升本的 收益远小于复读。
最后于 2019-12-13 18:23 被小黄鸭爱学习编辑 ,原因:
2019-12-13 18:22
0
雪    币: 5235
活跃值: (3260)
能力值: ( LV10,RANK:175 )
在线值:
发帖
回帖
粉丝
33
膜拜大佬,这玩意好难,现在卡在这了
2020-3-6 16:36
0
雪    币: 218
活跃值: (709)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
34
谢谢分享。
对使用capstone做basic block划分不理解。
i.groups的意思是这个指令在语义上属于哪个分组。
https://www.capstone-engine.org/lang_python.html
Check if this instruction belongs to any semantic group. If so, print out all group ID.
例如 bl #0x12b5b8
i.groups返回1和7,从代码上看好像对应:
ARM64_GRP_JUMP 1
ARM64_GRP_BRANCH_RELATIVE 7

用capstone-4.0.1跑附件的so,看到的分组是这样:
start 0x70438L, end 0x704c8L
start 0x70438L, end 0x704c8L
start 0x70438L, end 0x704c8L
start 0x70438L, end 0x704c8L
start 0x70438L, end 0x704c8L
start 0x70438L, end 0x704c8L
start 0x70438L, end 0x704c8L
怎么能获得正确的分组呢?
2020-4-11 17:53
0
雪    币: 218
活跃值: (709)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
35
实际操作中发现,用代码很难界定什么样的块是OB块,
如果误删了正常块,就会连锁导致一大堆的逻辑丢失。
2020-4-11 17:56
0
雪    币: 6918
活跃值: (9139)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
36
jerryxjtu 实际操作中发现,用代码很难界定什么样的块是OB块, 如果误删了正常块,就会连锁导致一大堆的逻辑丢失。
我已经解决这个问题,等过段时间公开
2020-5-23 22:42
0
雪    币: 7
活跃值: (389)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37


对比了代码修改之前跟修改之后的,发现有进行BL 调用的地方也被改了 但是代码里有对bl进行判断,为什么还会进行路径修改?

        ban_ins = ["bl"]

        #是否跳过指令

        flag_pass = False

        for b in ban_ins:

            if ins.mnemonic.find(b) != -1:

                flag_pass = True

                break


      if flag_pass:

            print("will pass 0x%x:\t%s\t%s" %(ins.address, ins.mnemonic, ins.op_str))

            uc.reg_write(UC_ARM64_REG_PC, address + size)

            return


2020-9-21 13:53
0
雪    币: 7
活跃值: (389)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
我去,图片没发出来,原来: LOAD:0000000000070664                 BL              sub_D030
修改后:LOAD:0000000000070664                 BL              sub_D030
2020-9-21 13:55
0
雪    币: 3098
活跃值: (4222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
膜拜大佬
2020-9-22 11:00
0
雪    币: 249
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
也想好好研究一下llvm,像楼主学习
2020-11-4 13:43
0
雪    币: 343
活跃值: (866)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
41
Dstlemoner 为什么要复读。。。。。专升本都可以。。。。复读浪费时间。。
好学校对自己的视野和朋友圈有好处的,以后发展肯定也有好处
2020-11-5 09:33
0
雪    币: 5855
活跃值: (438)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
42
大神,膜拜下
来学习下怎么通过模拟执行还原流程
2020-11-5 12:59
0
雪    币: 18
活跃值: (1006)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
大佬附件打不开
2021-3-15 18:23
0
雪    币: 1636
活跃值: (653)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
44
高中就这么厉害,真是年少有为啊
2021-3-26 11:39
0
雪    币: 443
活跃值: (1157)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
45
感谢分享,英雄出少年
2021-4-17 13:45
0
雪    币: 365
活跃值: (480)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
方便加个qq么  
2021-4-25 00:45
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
47
大佬好,学习一下反混淆,is_real_blocks函数中将这些指令  ['movz','movk','cmp','b.eq','b.ne']组成的块定义为虚假块,是为什么呀?还有ssign的定义又是怎么来的呢,
2022-10-4 23:18
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
厉害了
2023-3-13 18:39
0
雪    币: 120
活跃值: (1603)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
年轻有为
2023-3-27 10:19
0
雪    币: 107
活跃值: (1738)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
50
模式匹配吧
2024-3-3 20:04
0
游客
登录 | 注册 方可回帖
返回
//