首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android逆向之动态分析so

本期,斗哥将给大家带来Android逆向的动态分析,简述Android动态分析环境配置与IDA调试so文件。...学习Android逆向动态分析前,一定要有基础环境支持,比如sdk、jdk等,所以在动态分析前先要进行一波基础配置。...0X02 动态分析 这里的动态分析主要使用IDA和adb命令配合Android模拟器来分析so 1.动态环境配置 将IDA安装目录E:\IDA 7.0\dbgsrv下 符合Android安装系统位数的...双击要调试的进程,IDA将加载到so,IDA进行动态分析。 ? 双击可以为相应的代码打上断点,F9重新开始调试,程序将停在断点处,就能开始调试so文件。 ?...0X03 小小总结 Android逆向之动态分析so篇就介绍到这里啦!下期我们将进入Android逆向之动态分析smail篇的学习。若在文章的学习过程中遇到问题,欢迎给斗哥留言。

3.5K30

Android逆向之旅—SO(ELF)文件格式详解–反编译so

第一、前言 从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。...但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们先来详细了解一下so文件的内容下面就来看看我们今天所要介绍的内容。...2、readelf -S xxx.so 查看so文件的段(Section)头的信息 ? 3、readelf -l xxx.so 查看so文件的程序段头信息(Program) ?...4、readelf -a xxx.so 查看so文件的全部内容 ?...那么这篇文章是逆向之旅的第一篇,也是以后篇章的基础,下面一篇文章我们会介绍如何来手动的在elf中添加一个段数据结构,尽情期待~~

25.4K1916
您找到你想要的搜索结果了吗?
是的
没有找到

【Android 逆向】Android 中常用的 so 动态库 ( libdvm.so | libart.so | libandroid_runtime.so | libandroidfw.so )

文章目录 一、Android 虚拟机涉及的 libdvm.so 动态库 和 libart.so 动态库 二、Android 运行时相关 libandroid_runtime.so 动态库 三、Android...Framework 层 Native 实现相关 libandroidfw.so 动态库 一、Android 虚拟机涉及的 libdvm.so 动态库 和 libart.so 动态库 ---- libdvm.so...; 执行 cp /system/lib/libart.so /sdcard/Pictures 命令 , 将 libart.so 动态库拷贝到 /sdcard/Pictures 目录 , 之后可以将其拷贝到文件系统..., 使用 64 位 IDA 分析该动态库 ; 二、Android 运行时相关 libandroid_runtime.so 动态库 ---- libandroid_runtime.so 是 Android...层的 Native 实现部分的动态库 , 执行 cp /system/lib/libandroidfw.so /sdcard/Pictures 命令 , 将 libandroidfw.so 动态库拷贝到

2.1K20

某拍App算法so逆向分析

搜出来会有很多个sig,具体是哪一个只能自己分析, 看封包内容就很好分析出来 看到这里可以知道了 Arg7.put的几个参数在封包里都是加密的,所以直接跟到generatorSig方法去, 跟进来发现载入了so...文件 同时下面代码可以看见nativeGeneratorSig方法里什么东西都没有, 并且native暗示这些方法是有实现体的,所以一定是从release_sig这个so文件里实现的 0x2.1...so文件静态分析 查找函数nativeGeneratorSig 进入到该函数里再分析,就看见了之前在jeb静态分析的那个方法nativeGeneratorSig, 之前在jeb里分析看见这个方法里面没有任何算法什么的东西...,而是载入的so文件, 那么在这个so文件里的这个方法里面绝对是有算法的.

1.9K50

【Android 逆向】Android 中常用的 so 动态库 ( systemliblibc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )

文章目录 一、拷贝并分析 Android 中的 /system/lib/libc.so 动态库 二、拷贝并分析 Android 中的 /system/lib/libc++.so 动态库 三、拷贝并分析...Android 中的 /system/lib/libstdc++.so 动态库 总结 一、拷贝并分析 Android 中的 /system/lib/libc.so 动态库 ---- /system/lib.../libc.so 是 C 函数标准库 ; 执行 cp /system/lib/libc.so /sdcard/Pictures 命令 , 将 libc.so 拷贝到手机的 SD 卡中 , 从 SD 卡可以将该动态库拷贝到...Windows 文件中 ; 使用 64 位的 IDA 打开上述动态库 ; libc.so 中有以下几个导入库 , dlopen , dlerror , dlclose ; 加载 libc.so 库之前.../libc++.so 动态库 和 /system/lib/libstdc++.so 动态库 都依赖于 libc.so 动态库 ;

2K30

【Android 逆向】IDA 安装 ( 使用 IDA 分析 so 动态库 )

文章目录 一、IDA 安装 二、使用 IDA 分析 so 动态库 一、IDA 安装 ---- 启动 IDA 安装程序 , 开始安装 IDA ; 同意用户协议 ; 输入密码 ; 选择安装位置 ;...创建桌面图标 ; 开始安装 ; 等待安装完成 ; 安装完毕 ; 二、使用 IDA 分析 so 动态库 ---- 首次进入 , 弹出如下对话框 ; 同意用户协议 , 之后该界面不再显示 ;...选择 " New " 选项 ; 这里直接将 so 文件拖动到 IDA 中 ; 拖入 so 文件后 , 使用默认选项 , 点击 OK 按钮 , 继续向后执行 ; 弹出的信息对话框中勾选不再显示该信息..., 点击 OK 按钮 ; 打开后的样式 : 左侧 Function name 显示函数名称 , IDA-View-A 是 so 库对应的汇编代码 ; IDA-View-1 是 so 库对应的二进制代码

1.3K20

【Android 逆向】Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )

文章目录 一、libm.so 数学函数动态库 二、liblog.so 日志模块动态库 三、libselinux.so 安全模块动态库 一、libm.so 数学函数动态库 ---- libm.so 是数学相关函数库..., 该动态库是 libc.so 动态库的依赖库 , 是最基础的函数库 ; 执行 cp /system/lib/libm.so /sdcard/Pictures 命令 , 将 libm.so 动态库拷贝到...日志模块动态库 ---- liblog.so 是日志模块的动态库 , 所有的日志打印 , 都使用的这个库 ; 执行 cp /system/lib/liblog.so /sdcard/Pictures...命令 , 将 liblog.so 动态库拷贝到 /sdcard/Pictures 目录 , 之后可以将其拷贝到文件系统 ; 三、libselinux.so 安全模块动态库 ---- libselinux.so...是安全模块的动态库 ; 执行 cp /system/lib/libselinux.so /sdcard/Pictures 命令 , 将 libselinux.so 动态库拷贝到 /sdcard/Pictures

90710

反编译so库破解so

所以想破解so,将对i2c num 的大小改大点。...from=sec (2)实战预热 https://blog.csdn.net/m0_37766442/article/details/72903385 一、反编译so 使用IDA打开so 根据log信息或猜测查找需要破解的大致位置...我们看到上方有一个 loc_82036,这代表一段代码的标签处,类似C里面goto 的标签,那肯定其他地方会向这个标签做跳转 选中这个标签,右击 点击红框选项,就会列出所有向此处跳转的地方,这个so,...点中CMP R0,#6的地址处,然后切换到HEX View Hex VIEW 可以切换数据格式,64位so用4字节格式,32位so用2字节格式 我们需要将CMP R0,#6 改成CMP R0,#8...,跳转到这一地址 我们将06改成08保存 替换so,不再打印那个错误log,读正常了,但是写还有问题,同样的方法修改I2C写操作里的值,问题解决 发布者:全栈程序员栈长,转载请注明出处:https:

4.3K30

【胖虎的逆向之路】——GOTPLT Hook详解&针对自定义so库的Hook实操

前言 随着 Android 开发的技术宽度不断向 native 层扩展,Native hook 已经被用于越来越多的业务场景中,之前作者一直游离于Java层面的逆向,后来工作使然,接触到了Native...嘟嘟嘟嘟…一大堆,建议略过 ,著名哲学家嘟嘟斯基曾说过:“太长不看” 首先,综上所述,明确一个概念,ELF 是一个文件格式,诸如我们所见的.so动态库,均属于ELF文件格式 2、ELF 的组成 没图说个...文件头部定义了Magic,以及指向节头表SHT(section_header_table ) 和 程序头表PHT(program_header_table) 的偏移 我们来拿curl.so文件来看一哈~...没关系,我也是,先了解大概意思,慢慢往下走~ 运行命令: arm-linux-androideabi-readelf -S xxx.so 2.2、 ELF中程序头表是什么北北呢?...来,跑起来~ 使用命令获取: cat /proc/对应进程的pid/maps 上图已经列举出了我们的应用加载的一些so库,左边标记红色的地址就是各个so库的基址 addr = base_addr

67641

【Android 逆向】ART 函数抽取加壳 ④ ( 对 libc.so#execve 函数进行内联 HOOK 操作 )

文章目录 一、对 libc.so#execve 函数进行内联 HOOK 操作 在 【Android 逆向】ART 函数抽取加壳 ① ( ART 下的函数抽取恢复时机 | 禁用 dex2oat 机制源码分析...) 【Android 逆向】ART 函数抽取加壳 ② ( 禁用 dex2oat 简介 | TurboDex 中禁用 dex2oat 参考示例 ) 两篇博客中 , 简单介绍了 禁用 dex2oat 机制...的原理 , 下面开始 实现 dex2oat 禁用功能 ; 在 【Android 逆向】ART 函数抽取加壳 ③ ( 禁用 dex2oat 操作 HOOK 点介绍 | 集成 InLineHook ) 博客中...execve 函数的地址 ; execve 函数 定义在 bionic/libc/include/unistd.h 中 , 在 exec_utils.cc 中进行调用 ; 使用 在 【Android 逆向...函数库的基地址 void *libc_addr = dlopen_compat("libc.so", RTLD_NOW); // 查找 execve 在 libc.so 函数库的偏移地址

49720

什么是.so文件_安卓so文件作用

so文件是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据 linux下何谓.so文件: 用过windows的同学应该都知道 .dll文件吧, 这二者有什么共通之处呢,其实 .so文件就跟....dll文件差不多 一般来说.so文件就是常说的动态链接库, 都是C或C++编译出来的。...与Java比较就是:它通常是用的Class文件(字节码) Linux下的.so文件时不能直接运行的,一般来讲,.so文件称为共享库 那么.so文件是怎么用的呢?...for example:  (1) 动态库的编译 这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so...-ltest -o test 注:测试是否动态连接,如果列出libtest.so,那么应该是连接正常了  -L.

3K30

so文件在线加固加密_安卓so文件解密

大家好,又见面了,我是你们的朋友全栈君 这篇是一系列的关于SO文件保护的自我理解,SO文件保护分为加固,混淆以及最近炒的比较火的虚拟机...加固就是将真正的so代码保护起来,不让攻击者那么轻易的发现,至于混淆,由于ART机制的介入,使得O-LLVM越来越火,这以后有机会再分析,这次主要是基于有源码的so文件保护,下次介绍无源码的so文件保护...这就引入了我们今天的主题,可以把我们关键的so文件中的核心函数放在自己所定义的节里面,然后进行加密保护,在合适的时机构造解密函数,当然解密函数可以用这个_attribute__((constructor...ok,以上编写完以后就编译生成.so文件。...2.对得到的.so文件进行加密:这一块也是一个重点,大致上逻辑我们可以这么认为:先找到那个我们自己所定义的节,然后找到对应的offset和size,最后进行加密,加密完以后重新的写到另一个新的.so文件中

2.9K40

【Android 逆向】Android 逆向用途 | Android 逆向原理

文章目录 一、Android 逆向用途 二、Android 逆向原理 一、Android 逆向用途 ---- Android 逆向用途 : 软件防护 : 根据逆向的方法针对性的开发防护策略 ; 算法研究...在没有源码的前提下 , 通过反编译 , 反汇编 , 拿到 Smali 代码 , 研究其产品的算法 , 实现途径 ; 接口分析 : 接入一个没有源码的第三方库 , 无法进行调试 , 出现问题后 , 可以使用逆向的方法..., 可以进行破解使用 ; 调试分析 : 应用打包 , 混淆 , 加固 后上传到应用市场 , 如果某个分发渠道版本出现问题 , 可能就需要调试分析具体的这个 APK 包的问题 ; 结合源码与渠道包进行逆向分析..., 查找问题原因 ; 二、Android 逆向原理 ---- Android 逆向原理 : 静态分析 : 反编译 , 反汇编 , 从 .so , .a , .dex 等函数库中提取相应信息 , 主要是分析静态文件二进制数据

76110
领券