九袋 发表于 2018-7-24 15:59

android软件防护简要分析

逆向Android软件的步骤:
[*]对其反编译
[*]阅读反编译代码
[*]找到突破口后注入或者直接修改反汇编代码
[*]重编译

因此,防护也主要是这四个方面。

1.反编译工具
由于反编译工具都存在版本更新的情况,所以一味去寻找使相应的反编译工具出错的方法,有点得不偿失。
2.静态分析
(1)代码混淆
java代码易被反编译,所以google在android2.3的sdk中加入ProGuard,其主要是对class文件进行压缩、优化、混淆、预检。具体操作如果有需要,会在后面的文件中展示。
(2)NDK保护
c/c++相对于java来说,反编译后阅读难度增加。因此,核心代码一般都是调用native方法,其中具体是由c/c++编写。
(3)加壳
随着反编译技术的更新,代码混淆始终是一个治标不治本的方法。因此,加密就显得很重要。
[*]对整个应用加壳。
[*]对so文件加壳。native代码大多是在so文件中的section中。

3.动态分析
[*]调试器。在AndroidManifest中属性debuggable取值选取
[*]模拟器。具体属性,比如手机型号。在模拟器中其值为sdk,具体手机中为手机型号。

4.重编译
[*]签名检测。只要破解人员不知道密匙,重编译后的文件签名都会改变,可在运行时检测。
[*]检测保护。每个软件的dex文件都会有个hash值,而重编译后的文件hash值会改变。

LivedForward 发表于 2018-7-25 15:28

楼主说的防护现在基本上都已经家喻户晓,忘能细化节点,写一点防护技术上的文章,还是不错滴哟!

a1844390 发表于 2018-7-24 16:32

ximargin 发表于 2018-7-24 16:42

防护是必要的越来越多的安卓APP

vvvvvv 发表于 2018-7-24 18:41

虽然不懂但是,我不懂

cyhcuichao 发表于 2018-7-24 22:47

来看看楼主

xjcyxyx 发表于 2018-7-25 07:43

受用了,谢楼主分享!!

_pan 发表于 2018-7-25 08:03

意犹未尽呀

qwt99987 发表于 2018-7-25 09:06

收藏了啊,慢慢研究

小叶- 发表于 2018-7-25 09:42

老铁,多谢

sstm 发表于 2018-7-25 09:51

页: [1] 2
查看完整版本: android软件防护简要分析