- 博客(45)
- 资源 (46)
- 收藏
- 关注

原创 Android逆向教程收藏
开始收集看到的比较好的Android逆向教程,以做参考。1.http://www.52pojie.cn/forum.php?mod=viewthread&tid=293648&extra=page%3D2%26filter%3Dtypeid%26typeid%3D236
2016-08-30 22:11:03
1186
原创 一个soot带来的java.lang.IncompatibleClassChangeError
最近基于soot在做一些中间变换,在处理一个APK后报了一个IncompatibleClassChangeError,这种错误通常是编译时类路径与运行时类路径不同导致,但是我原始的APK可以正常运行,但是经过soot处理后的APK不能正常运行,因此怀疑是某些类被改变了。下面是该APK的源码(修改自Android cts部分源码):public class MethodTest {...
2020-01-02 18:37:58
338
原创 我的LLVM学习笔记——OLLVM混淆研究之BCF篇
因为要做代码保护,所以抽时间研究了下OLLVM中的三种保护方案:BCF(Bogus Control Flow,中文名虚假控制流)、FLA(Control Flow Flattening,中文名控制流平坦化)、SUB(Instructions Substitution,中文名指令替换),本文是BCF介绍篇。1,查看BCF的头文件,暴露给外界的两个函数如下:// Namespacename...
2019-11-29 17:53:12
4292
1
原创 我的LLVM学习笔记——OLLVM混淆研究之FLA篇
因为要做代码保护,所以抽时间研究了下OLLVM中的三种保护方案:BCF(Bogus Control Flow,中文名虚假控制流)、FLA(Control Flow Flattening,中文名控制流平坦化)、SUB(Instructions Substitution,中文名指令替换),本文是FLA介绍篇。1,查看头文件llvm/Transforms/Obfuscation/Flatte...
2019-10-17 18:55:02
3586
原创 我的LLVM学习笔记——编写LLVM demo
一、安装LLVM二、使用CLion创建demo工程main.cpp代码如下:#include "llvm/IR/Verifier.h"#include "llvm/ExecutionEngine/GenericValue.h"#include "llvm/ExecutionEngine/Interpreter.h"#include "llvm/IR/Constants....
2019-09-23 15:26:23
1685
原创 dump localReference 表
先记录一下,后面补充 //test LOGI("dump localReference"); jclass vm_class = (*env)->FindClass(env, "dalvik/system/VMDebug"); jmethodID dump_mid = (*env)->GetStaticMethodID(env, vm_class, ...
2018-09-10 16:05:35
536
转载 Apache Maven 入门篇(下)
转载自http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html作者:George Ma第一篇文章大概的介绍了一下Apache Maven以及它的下载和安装,并且运行了一个简单的示例。那么在对maven有了一点接触后,接下去的一步是要了解maven的
2017-08-31 17:52:53
249
转载 Apache Maven 入门篇 ( 上 )
转载自http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html作者:George Ma写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法。这个入门篇分上下两篇。本
2017-08-31 17:50:33
254
原创 android8.0编译记录
Android8.0的正式版在8月21日正式发布,我打算亲自动手编一个可以跑在nexus 6p上的rom测试一下,下面是编译过程中的一些记录一、
2017-08-25 14:31:01
3994
原创 NDK编译——Android NDK 原生 API
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/stable_apis.htmlAndroid NDK 原生 API本页内容概览主要的原生 API 更新Android API 级别 3Android API 级
2017-07-06 00:08:42
1438
原创 NDK编译——C++ 库支持
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/cpp-support.htmlC++ 库支持本页内容帮助程序运行时运行时特性重要注意事项授权Android 平台提供很小的 C++ 运行时支持库 (libs
2017-07-06 00:07:01
5942
1
原创 NDK编译——使用预构建库
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/prebuilts.html使用预构建库本页内容声明预构建库从其他模块引用预构建库调试预构建库为预构建库选择 ABINDK 支持使用预构建库,静态库和共享库均
2017-07-06 00:05:21
1034
1
原创 NDK编译——x86 支持
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/x86.htmlx86 支持本页内容概览ARM NEON 内联函数支持独立工具链兼容性NDK 引入对 x86 ABI 的支持,其允许原生代码在 CPU 可支持
2017-07-06 00:03:53
3838
原创 NDK编译——NEON支持
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/cpu-arm-neon.htmlNEON 支持本页内容使用 LOCAL_ARM_NEON使用 .neon 后缀构建要求运行时检测示例代码NDK 支持 ARM
2017-07-05 23:59:16
3457
原创 NDK编译——ABI管理
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/abis.htmlABI 管理本页内容支持的 ABI为特定 ABI 生成代码Android 平台上的 ABI 管理不同 Android 手机使用不同的 CPU
2017-07-05 23:55:09
1058
原创 NDK编译——独立工具链
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/standalone_toolchain.html独立工具链本页内容选择您的工具链选择您的 Sysroot调用编译器使用 ClangABI 兼容性警告和限制您
2017-07-05 23:51:20
7473
原创 NDK编译——CMake
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/cmake.htmlCMakeOn this pageUsing CMake variables in GradleUnderstanding the CMake build comma
2017-07-05 23:49:29
2232
原创 NDK编译——ndk-build
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/ndk-build.htmlndk-build本页内容内部构建从命令行调用64 位和 32 位工具链要求ndk-build 文件是 Android NDK r
2017-07-05 23:46:39
649
原创 NDK编译——概念
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/concepts.html概念本页内容开始之前简介工作方式原生 Activity 和应用开始之前本指南假设您已熟悉原生编程 Android 开发内在的
2017-07-05 23:44:32
267
原创 NDK编译——Application.mk
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/application_mk.htmlApplication.mk本页内容概览变量本文档介绍 Application.mk 构建文件,此文件用于描述应用需要的原生模块。
2017-07-05 23:40:54
703
原创 NDK编译——Android.mk
文章的内容是从Android开发者官网扒的,为了防止再登不上去,记录一下。官网网址:https://developer.android.com/ndk/guides/android_mk.htmlAndroid.mk本页内容概览基础知识变量和宏模块描述变量本页介绍用于将 C 和 C++ 源文件粘合至 Android NDK 的 A
2017-07-05 23:38:10
4178
原创 Dalvik虚拟机学习2——类加载器的创建
1,DexClassLoader和PathClassLoader在android中,类文件的加载主要是通过这两个类加载器来实现的。其构造函数分别如下所示public DexClassLoader(String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent) {
2017-06-14 16:27:29
315
原创 Dalvik虚拟机学习1——Dalvik虚拟机源码结构分析
一、Dalvik虚拟机源码结构分析1,dexdump这个目录保存了dexdump工具的源码,dexdump是objdump工具的模仿版,可以使用与之形似的参数。dexdump工具可以用来查看dex文件的信息。可以通过这个工具将dex文件dump到txt文件中进行信息查看。下面是一些使用参考。dexdump: [-c] [-d] [-f] [-h] [-i] [-l layout] [-m] [-t
2017-05-26 14:58:35
947
转载 ELF文件查看利器之objdump用法
Android在NDK开发工具中提供了objdump,用来帮助开发者查看编译后目标文件的组成结构和具体内容。常用的有以下几个功能选项:1)-a或者--archive-headers这个参数起到的作用和ar命令相似,用来看一个.a静态库文件中包含了哪些目标文件。2)-f或者--file-headers输出目标ELF文件头中包含的信息,例如:表明这是个ELF文件,支
2017-05-24 15:56:36
3290
转载 Android无源码调试Native代码(使用GDB)
在前面的《Android无源码调试APK》一篇中,介绍了一种可以在无源码的情况下调试APK中Dalvik代码的方法。但是,现在越来越多的程序出于安全、性能或代码复用的考虑,使用JNI调用Native代码来实现某些功能。其实,在Android平台上,想要对Native程序进行调试,过程非常简单,主要是用到了GDB。大家知道,Android底层其实就是Linux,所谓的Dalvik虚拟机什么的都是
2017-05-24 15:55:06
821
转载 GDB常用命令
目录(?)[+]远程调试有时候需要调试的程序并不在本机上,GDB是支持远程调试的,具体命令如下:(gdb) target remote IP:PORT这时,本机的GDB客户端可以远程连接到被调试机器上,对程序进行调试。当然,前提是在远端的机器上,必须要启动好GDB服务端程序。运行程序如果是用GDB把程序加载起来,而不是attach到一个已经运行的进程上的话,
2017-05-24 15:53:57
551
转载 Application.mk语法解释
Application.mk是用来描述你的应用程序需要哪些模块,以及这些模块所要具有的一些特性。而相对的Android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码、要链接的库等等。Application.mk所要描述的内容主要包括:1)你程序正常运行,所需要到模块的具体列表;2)程序要编译成什么机器指令集的;3)所有模块要被编译成Release版本还是D
2017-05-24 15:51:58
510
转载 Android.mk语法解释
转载自http://blog.youkuaiyun.com/roland_sun/article/details/30466105目录(?)[+]大家在编写Android的Native代码时,经常会接触到一个叫做Android.mk的文件。虽然编译的时候都用到的是make,但是这个Android.mk文件里的语法还跟一般的make文件语法不太一样。本质上,And
2017-05-24 15:28:41
453
转载 Android Art Hook 技术方案
转载自http://blog.youkuaiyun.com/L173864930/article/details/45035521Android Art Hook 技术方案by 低端码农 at 2015.4.13www.im-boy.net0x1 开始Anddroid上的ART从5.0之后变成默认的选择,可见ART的重要性,目前关于Dalvik Hook方面
2017-05-19 18:24:18
682
原创 mprop工具
这个工具可以用来修改android的系统属性,便于调试,记录一下,方便查找。另外,可以在adb shell窗口中通过getprop命令查看系统属性。工具存放地址
2017-05-19 18:14:00
3496
转载 Android Linker 与 SO 加壳技术
1. 前言Android 系统安全愈发重要,像传统pc安全的可执行文件加固一样,应用加固是Android系统安全中非常重要的一环。目前Android 应用加固可以分为dex加固和Native加固,Native 加固的保护对象为 Native 层的 SO 文件,使用加壳、反调试、混淆、VM 等手段增加SO文件的反编译难度。目前最主流的 SO 文件保护方案还是加壳技术, 在SO文件加壳
2017-03-11 22:31:00
314
转载 Android Linker学习笔记
0x00 知识预备Linker是Android系统动态库so的加载器/链接器,要想轻松地理解Android linker的运行机制,我们需要先熟悉ELF的文件结构,再了解ELF文件的装入/启动,最后学习Linker的加载和启动原理。鉴于ELF文件结构网上有很多资料,这里就不做累述了。0x01 so的加载和启动我们知道如果一个APP需要使用某一共享库so的话,它会在J
2017-03-11 21:59:11
881
转载 获取Android设备挂载的所有存储器
android系统提供了Environment.getExternalStorageDirectory()接口获得存储器的路径,但是这个接口往往给的结果并不是我们想要的,在某些设备上它返回的是手机内部存储,某些设备它返回的手机外部存储。还有就是某些Android设备支持扩展多个sdcard,这个时候想要获得所有存储器的挂载路径,这个接口是没有办法办到的。怎么获取Android设备所有存储器的位
2016-11-18 16:48:54
400
原创 android jni中设置log日志开关
#ifndef LOG_H#define LOG_H#include #define TAG "iofix"#endif // LOG_H#define LOGOPEN 0 //日志开关,1为开,其它为关#if(LOGOPEN==1) #define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,TAG,__VA_
2016-10-12 11:09:02
3194
1
原创 VirtualApp框架--- Application启动过程
VA框架— Application启动过程一、VA 的Application为VApp,定义在io.virtualapp包中。VA重写了attachBaseContext()方法,在程序启动时会首先运行该方法,然后再调用VA的oncreate()方法。二、VApp的attachBaseContext方法会去调用VirtualCore.getCore().startup(base)方法。2.1. Vi
2016-07-30 15:54:23
19023
转载 ELF文件格式解析
1. ELF文件简介首先,你需要知道的是所谓对象文件(Object files)有三个种类:可重定位的对象文件(Relocatable file) 这是由汇编器汇编生成的 .o 文件。后面的链接器(link editor)拿一个或一些 Relocatable object files 作为输入,经链接处理后,生成一个可执行的对象文件 (Executable file)
2016-06-05 22:45:10
624
原创 一个将Android手机屏幕投影到电脑屏幕上的软件
写下来,以防忘记。asm.jar,将其放置于android的SDK的platform-tools下面,然后运行即可。运行界面截图下载链接是http://download.youkuaiyun.com/detail/suningning/9455008
2016-03-07 22:28:03
6158
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人