OLLVM + NDK 混淆编译环境搭建

2017-07-25
阅读 3 分钟
10.2k
代码混淆能起到很好的反逆向分析,类似于 java 的 proguard 混淆和 dex 文件的 dexguard 混淆工具,c/c++ 也有对应的 ollvm 混淆组件。

NDK 高级编程(笔记)

2017-07-24
阅读 4 分钟
3.9k
Android 开发中针对 NDK 的书籍很少,《Pro Android C++ with the NDK》也是出版的比较早的一本书,有些内容可能对现在的开发并不适用。但是书中介绍的内容比较全面,难度也不是很大,对于 NDK 开发有很大帮助,特别是在 NDK 开发的配置和代码规范上。

Android.mk 配置参数

2017-07-23
阅读 4 分钟
7.9k
Android.mk 的可配置参数会比较多,但是常用的可能很少。在进行多项目 ndk 共享的时候,如果对各个参数比较了解,对项目的结构优化有不小的好处。

DEX文件混淆加密

2017-02-12
阅读 24 分钟
10.9k
现在部分 app 出于安全性(比如加密算法)或者用户体验(热补丁修复bug)会考虑将部分模块采用热加载的形式 Load。所以针对这部分的 dex 进行加密是有必要的,如果 dex 是修复的加密算法,你总不想被人一下就反编译出来吧。当然也可以直接用一个加密算法对 dex 进行加密,Load 前进行解密就可以了,但是最好的加密就是让人分...

APK反逆向之二:四种基本加固方式

2016-10-28
阅读 16 分钟
12.8k
近些年来移动 APP 数量呈现爆炸式的增长,黑产也从原来的PC端移到了移动端,伴随而来的逆向攻击手段也越来越高明。本篇章主要介绍应用加固的最基础的四种方式:1.proguard 混淆 2.签名比对验证 3.ndk 编译 .so 动态库 4.代码动态加载

APK反逆向之一:监控debug

2016-10-13
阅读 8 分钟
5.9k
在开发和逆向过程中很多时候都需要动态调试,开发时候可以用开发 android 的 IDE进行调试,native层也可用调试,Android Studio早就可以进行 native 的debug调试了。但是在 release 后的 apk 如果还检测到了 debug 调试,那么说明该 apk 正被破解。

ELF文件格式分析

2016-10-09
阅读 14 分钟
22.9k
可执行链接格式(Executable and Linking Format)最初是由 UNIX 系统实验室(UNIX System Laboratories,USL)开发并发布的,作为应用程序二进制接口(Application Binary Interface,ABI)的一部分。工具接口标准(Tool Interface Standards,TIS)委员会将还 在发展的 ELF 标准选作为一种可移植的目标文件格式,可以在 32 位 ...

NDK开发-ReleaseStringUTFChars调用的坑

2016-07-02
阅读 3 分钟
18.6k
在开发中部分关键代码是在 NDK 中处理的,但是前段时间我们在线上日志中发现有少量的日志报错。通过排查我们发现问题出现在 NDK 的 ReleaseStringUTFChars 函数上。虽然找到了解决办法,但是我还是没有分析出具体的问题在哪。

NDK开发-JNI 局部引用、全局引用和弱全局引用

2016-06-17
阅读 13 分钟
3.2k
这篇文章比较偏理论,详细介绍了在编写本地代码时三种引用的使用场景和注意事项。可能看起来有点枯燥,但引用是在 JNI 中最容易出错的一个点,如果使用不当,容易使程序造成内存溢出,程序崩溃等现象。《Android JNI局部引用表溢出》这篇文章是一个 JNI 引用使用不当造成引用表溢出,最终导致程序崩溃的例子。建议看完这...

NDK开发 - C/C++ 访问 Java 变量和方法

2016-06-17
阅读 9 分钟
3.5k
上一篇有提到 JNI 访问引用数组,涉及了 C/C++ 访问 Java 实例的方法和变量。虽然在之前的开发中,并没有用到 C/C++ 范围 Java 层数据,但是这部分内容还是很有用的。

NDK开发 - JNI数组数据处理

2016-06-06
阅读 6 分钟
36.4k
很多时候利用 NDK 开发都是为了对数据进行加密操作,因为单纯的 Java 太容易被反编译了,加密算法也就很容易被破解,而利用 C/C++ 开发可以加大破解难度。文件的数据加密就需要通过 byte 数组传给 JNI。

NDK开发 - JNI基本数据和字符串处理

2016-06-01
阅读 4 分钟
6.6k
第一篇搭建环境,第二篇了解开发流程,第三篇扯了一些理论,这一篇是时候展现真正的技术了,主要是写一些 JNI 的基本类型数据处理以及字符串的处理,字符串是最经常涉及的数据类型。

NDK开发 - JNI数据类型与Java数据类型映射关系

2016-05-25
阅读 1 分钟
3.7k
介绍完Android JNI的开发流程就要开始码代码了,不过在码代码前还是有必要了解下JNI数据类型与Java数据类型映射关系,直接开始写肯定会懵逼。

NDK开发 - JNI开发流程

2016-05-24
阅读 5 分钟
4.7k
JNI是Java和C/C++建立连接的桥梁,开发者可以将关键的加密算法通过用C/C++实现以提高被反编译的难度,保护APK的数据安全。又或者通过C/C++获取一些手机数据,以此来绕过类似Xposed这类作弊工具,提高数据的准确性。源码地址:[链接]

NDK开发 - Android Studio环境搭建

2016-05-22
阅读 6 分钟
8.3k
Android studio在很早版本已经开始支持NDK开发了,但是好像一直没有出正式版的gradle插件,现在最新的版本插件版本是0.6.0-alpha5。之前使用好像有点问题,具体忘记了。所以一直使用0.4.0版本开发。