首页
社区
课程
招聘
[原创]arm vmp
发表于: 2019-6-30 07:51 10401

[原创]arm vmp

2019-6-30 07:51
10401

          简介arm vmp是传说中的第五代加固技术 它的表现形式是把二进制 解析成arm汇编 并且执行arm汇编 或者解析成arm变种指令 

        e.g

         #define ARM_CODE "\x37\x00\xa0\xe3\x03\x10\x42\xe0" // mov r0, #0x37; sub r1, r2, r3

        

    原理分析

      d61K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0K9r3W2F1j5i4g2F1K9i4S2Q4x3X3g2F1k6i4c8Q4x3V1k6#2K9h3c8Q4x3X3b7J5x3K6t1J5y4e0R3#2y4g2)9J5k6r3W2V1i4K6u0V1x3K6b7%4z5e0b7&6x3W2)9J5k6h3S2@1L8h3H3`.


   1.根据 unicorn 可以在x86 上可以运行arm汇编 并且执行arm汇编指令 把unicorn 移植到android端或者ios端 就可以实现arm vmp技术

   2.剔除unicorn 虚拟x86 mips 等等代码 让unicorn 只执行arm汇编指令集

   3.解决trace code不能打印问题

   

     参考:3c4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6#2L8X3W2U0L8%4u0F1i4K6u0V1k6h3&6Y4K9h3&6W2i4K6u0r3N6h3&6A6j5$3!0J5L8R3`.`.



[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2020-5-5 09:56 被liumengde编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 1867
活跃值: (4518)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
打破零回复
2019-6-30 10:01
0
雪    币: 0
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个如何做到加固代码呢?它似乎只能实现跨平台执行机器指令
2019-7-1 20:01
0
雪    币: 863
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不明觉厉
2019-7-1 22:33
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
android端本来就是虚拟机,再vmp虚拟机一次,这效率是能更低点吗?
2019-7-2 01:36
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
可以把关键算法或是关键检测放到里边 不要把所有的函数虚拟化 
2019-7-2 06:30
0
雪    币: 456
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这和lua 虚拟机,mono 虚拟机。java 虚拟机有啥区别。还不是能反编译
2019-7-2 10:52
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
对于大牛怎么都能破解 
2019-7-2 11:29
0
雪    币: 1101
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感觉没多大意义
2019-7-2 16:07
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
心凉啊 白搞了这么久了
2019-7-2 18:41
0
雪    币: 3712
活跃值: (2021)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
11
vmp 不是这么理解的,并不是跨平台的虚拟,而是对于指令的虚拟自定义再自解释
2019-7-2 20:50
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
大神你搞出来了 可以借鉴否
2019-7-5 09:33
0
雪    币: 109
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
可以通过LLVM编译器,将原来的IR指令转变成自定义的虚机IR指令,有需要了解虚机加固的,欢迎私信交流
2019-7-9 14:59
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
这个思路不错
2019-7-23 11:33
0
雪    币: 7364
活跃值: (10594)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
15
你好,请问是如何用ndk编译unicorn的?
我编译的出来的unicorn内部的调用约定有问题。
helper_uc_tracecode 函数实际用的是arm标准调用约定,但是qemu里面gen出来的code是通过栈传递参数,请问你是如何解决这个问题的?
73aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2M7s2m8Q4x3X3g2&6K9h3&6^5K9h3q4F1k6#2)9J5k6h3y4G2L8g2)9J5c8X3k6^5i4K6u0r3j5h3b7#2j5K6f1K6y4h3q4Q4x3X3b7$3y4U0q4S2i4K6u0V1y4o6M7%4x3g2)9J5k6r3t1&6y4U0m8Q4x3X3b7I4z5e0p5%4x3r3t1&6y4$3f1&6y4$3x3`.

最后于 2019-8-2 12:22 被无名侠编辑 ,原因:
2019-8-2 12:21
0
雪    币: 7364
活跃值: (10594)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
16
使用unicorn做vmp不太合适,主要是体积太大了,其它方面我觉得到没什么问题。
删掉符号之后,逆向人员不知道用的unicorn,很操蛋的。
如果在翻译的时候加一个解密变换,那就更好了。
2019-8-2 12:25
0
雪    币: 7364
活跃值: (10594)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
17
imlk 这个如何做到加固代码呢?它似乎只能实现跨平台执行机器指令[em_31]
他是想利用qemu高强度的代码复杂度来隐藏真实代码。你拿着qemu的源码也不一定能在短时间内找到dump代码的地方吧。
2019-8-2 12:27
0
雪    币: 3712
活跃值: (2021)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
18
liumengde 大神你搞出来了 可以借鉴否
如果有兴趣的话,可以发你demo
2019-8-2 12:32
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
把trace_code 干了 @无名侠
2019-11-12 10:56
0
雪    币: 249
活跃值: (4185)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
20
无名侠 你好,请问是如何用ndk编译unicorn的?我编译的出来的unicorn内部的调用约定有问题。helper_uc_tracecode 函数实际用的是arm标准调用约定,但是qemu ...
@无名侠 大佬这问题解决了么,我也遇到这问题了, tcg的代码看着头晕,不知道怎么改
2019-11-26 16:23
0
雪    币: 348
活跃值: (486)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
21
@无名侠 已经解决
2020-5-5 09:56
0
游客
登录 | 注册 方可回帖
返回