装x用的 内容摘自网络

来源:互联网 发布:手机淘宝怎么设置运费 编辑:程序博客网 时间:2024/05/16 09:03

android与C的结合

在学习android逆向的时候感觉遇到的最难的问题就是分析原生代码,即JNI代码。开发者使用android NDK编写C/C++代码供android的java代码调用(通过java的代码转接层来完成接口的转换)。
使用android NDK编写的C/C++代码最终会生成基于ARM的ARM ELF可执行文件,我们想要分析软件的功能就必须掌握另一项技能,ARM汇编,ARM汇编个人感觉虽然和x86汇编类似,不过由于IDA Pro对ARM汇编没有反编译功能以及貌似没有工具能动态调试ARM代码(我网上没找到),导致我们只能直接硬看ARM代码,加上往往伴随着复杂的密码学算法等等,导致对Native Code的逆向相对来说比较困难,对基本功的要求比较高。

关于android的代码混淆和加壳

java语言编写的代码本身就很容易被反编译,google为此在android 2.3的SDK中正式加入了ProGuard代码混淆工具,只要正确的配置好project.properties与proguard.cfg两个文件即可使用ProGuard混淆软件。
java语言由于语言自身的特殊性,没有外壳保护这个概念,只能通过混淆方式对其进行保护。对android NDK编写的Native Code倒是可以进行加壳,但目前貌似只能进行ups的压缩壳保护。

0 0
原创粉丝点击