随笔分类 -  android逆向

摘要:https://www.cnblogs.com/revercc/p/16299712.html 在linker初始化的时候,linker_main函数在加载了ELF文件依赖的所有so库后,会先调用call_pre_init_constructors()和call_constructors()函数对s 阅读全文
posted @ 2022-11-04 23:27 怎么可以吃突突 阅读(1145) 评论(0) 推荐(1) 编辑
摘要:被动调用 以自实现的抽取壳为例,对Test01.proc1函数进行抽空,但这次不同的是此Test01类在apk加载的过程中并不会被加载。通过之前被动调用的方式dump dex发现此函数还是被抽空的状态。 总结:单单通过在LoadMethod调用后进行dump dex是一种被动调用的脱壳手段。因为AP 阅读全文
posted @ 2022-10-29 15:33 怎么可以吃突突 阅读(357) 评论(0) 推荐(0) 编辑
摘要:AndroidKiller查看此apk发现入口Activity找不到,说明此apk被加壳了。 接着查看apk反编译后的代码,发现使用的XX的乐固。 首先尝试在DEX文件加载过程中进行hook,例如hook DexFileLoader::OpenCommon。然后dump下来的dex进行分析发现所有的 阅读全文
posted @ 2022-10-28 12:49 怎么可以吃突突 阅读(635) 评论(0) 推荐(0) 编辑
摘要:一代壳主要是使用dex整体加密技术,无论是使用DexClassLoader从文件中动态加载dex还是使用InMemoryDexClassloader从内存中加载dex文件,dex文件在被加载后在内存中一定是一个解密后完整的dex文件。脱壳的方法就是找到这个dex文件并dump下来,大多数一代壳为了防 阅读全文
posted @ 2022-10-28 11:20 怎么可以吃突突 阅读(1040) 评论(0) 推荐(0) 编辑
摘要:ActivityThread在handlebindapplication中执行完Application的初始化之后会继续进入到消息循环中接收AMS(activity manager service)启动activity的消息。AMS首先会发送启动入口Activity的消息,然后ActivityThr 阅读全文
posted @ 2022-10-21 14:40 怎么可以吃突突 阅读(188) 评论(0) 推荐(0) 编辑
摘要:# 一代壳dex整体加固 第一代壳主要是对dex/apk文件整体加密,然后自定义类加载器动态加载dex/apk文件并执行。在动态加载dex/apk文件的时候有落地加载和不落地加载,落地加载就是通过DexClassLoader从磁盘加载dex/apk文件,不落地加载就是通过InMemoryDexCla 阅读全文
posted @ 2022-10-20 14:34 怎么可以吃突突 阅读(868) 评论(0) 推荐(0) 编辑
摘要:Dex文件加载过程 PathClassLoader 和 DexClassLoader都可以加载dex文件,其对应的基类都是BaseDexClassLoader。在new一个PathClassLoader/DexClassLoader对象时就会调用其对应的构造函数,然后调用父类BaseDexClass 阅读全文
posted @ 2022-10-20 03:42 怎么可以吃突突 阅读(682) 评论(0) 推荐(0) 编辑
摘要:android应用程序启动流程 当在launcher进程(home进程)中点击一个应用的图标时其会调用startActivity,然后会通过Binder与system_server系统进程跨进程通讯。system_server会调用Process.start开始启动一个新进程。Process.sta 阅读全文
posted @ 2022-10-12 13:05 怎么可以吃突突 阅读(324) 评论(0) 推荐(0) 编辑
摘要:## java JVM中有三个初始的类加载器:引导类加载器BootStrapClassLoader,扩展类加载器ExterntionsClassLoader,应用程序类加载器ApplicationClassLoader。 * 引导类加载器BootStrapClassLoader是顶层类加载器,负责加 阅读全文
posted @ 2022-10-11 22:30 怎么可以吃突突 阅读(212) 评论(0) 推荐(0) 编辑
摘要:检测调试相关文件android_server等 int SearchFile(std::string file_path) { int ret = 0; // fork进程检测 std::string command = "cat "; command.append(file_path.c_str( 阅读全文
posted @ 2022-10-10 16:33 怎么可以吃突突 阅读(1175) 评论(0) 推荐(2) 编辑
摘要:# android平台的ELF hook技术 ![](https://img2022.cnblogs.com/blog/2052882/202210/2052882-20221010122231481-699432400.png) ## LD_PRELOAD hook linker程序在对elf可执 阅读全文
posted @ 2022-10-10 12:35 怎么可以吃突突 阅读(474) 评论(0) 推荐(0) 编辑
摘要:android平台的so注入技术 LD_PRELOAD注入 LD_PRELOAD是linux的系统环境变量,因为android基于linux内核所以此环境变量依然存在。当linker初始化时会获取首先获取LD_PRELOAD指向的so库然后再获取elf文件的其他依赖库,所以LD_PRELOAD指向的 阅读全文
posted @ 2022-10-09 22:20 怎么可以吃突突 阅读(1678) 评论(0) 推荐(0) 编辑
摘要:# dex文件格式 dex是android虚拟机的可执行字节码文件,java文件经过javac编译成class文件,class文件又被dx处理后生成dex文件。 ![](https://img2022.cnblogs.com/blog/2052882/202209/2052882-202209101 阅读全文
posted @ 2022-09-10 16:44 怎么可以吃突突 阅读(4032) 评论(0) 推荐(0) 编辑
摘要:实际没必要单单扩大text节区的大小,因为一般text节区所在的segment段一般是可读可执行的,所以认为此段为text段,可以直接增加ELF文件中此段的大小。 # ELF文件扩大text节区 ## 不移动其他PT_LOAD段 首先定位到text节区所在的PT_LOAD段,然后找到text节区的结 阅读全文
posted @ 2022-08-31 12:26 怎么可以吃突突 阅读(795) 评论(0) 推荐(0) 编辑
摘要:在linux内核把ELF文件加载到内存中时,如果此ELF含有动态链接信息`linker`就会去解析并加载相应的依赖库。ELF动态链接信息保存在`.dynamic`节区中,类型为`DT_NEEDED`的项描述了对应的依赖库信息。 ![](https://img2022.cnblogs.com/blog 阅读全文
posted @ 2022-06-10 17:22 怎么可以吃突突 阅读(837) 评论(0) 推荐(0) 编辑
摘要:arm处理器拥有多种指令集,不同的架构支持不同的指令集。 armeabi-v7a是一个32位的架构,其支持thumb-1,thumb-2,arm三种指令集。 thumb-1和arm thumb-1指令集是arm指令集的子集,thumb-1指令长度为16位(两个字节),arm指令为32位(4个字节)。 阅读全文
posted @ 2022-06-06 23:23 怎么可以吃突突 阅读(926) 评论(0) 推荐(0) 编辑
摘要:编译器 一般编译器分为前端,中间优化和后端三部分。前端进行语法分析,中间进行优化后由后端编译成对应平台(arm,x86)的汇编代码(机器码)。现在主流的编译器有linux平台下的gcc 和 llvm-clang,以及windows平台下的msvc编译器。 LLVM gcc编译器虽然强大但是有一个缺点 阅读全文
posted @ 2022-06-02 01:03 怎么可以吃突突 阅读(1297) 评论(0) 推荐(0) 编辑
摘要:ollvm官方只更新维护到llvm的4.0版本,github上有大佬移植了高版本的llvm,链接为:https://github.com/heroims/obfuscator/tree/llvm-9.0.1 编译ollvm9.0.1 编译环境和ollvm4.0的编译环境一样,采用mingw64 + 阅读全文
posted @ 2022-05-27 19:08 怎么可以吃突突 阅读(2026) 评论(0) 推荐(0) 编辑
摘要:说一下我的艰辛历程,整整编译了三四天,要么编译出来不能用,要么编译不了。。。。。。 # 工具 * mingw64:gcc编译器的windows版本 * ollvm4.0:官方版 * ndk:android studio中下载的ndk 16.1.4479499 # 设置环境 * 下载mingw64编译 阅读全文
posted @ 2022-05-27 15:05 怎么可以吃突突 阅读(1087) 评论(0) 推荐(1) 编辑
摘要:ELF文件的导出表 windwos平台下的动态链接库dll文件会有导出表,对应的Linux/Android的so文件也会导出表。 IDA打开一个so文件,查看Exports会看到所有的导出函数(start默认导出) .dynsym符号表的最后就是导出表,其中Elf32_Sym.st_vlaue的值为 阅读全文
posted @ 2022-05-23 19:23 怎么可以吃突突 阅读(831) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩