so文件反编译为python代码_【反编译系列】四、反编译so文件(IDA_Pro)
版权声明:本文为HaiyuKing原创文章,转载请注明出处!
概述
安卓应用程序的开发语言是java,但是由于java层的代码很容易被反编译,而反编译c/c++程序的难度比较大,所以现在很多安卓应用程序的核心部分都使用NDK进行开发。使用NDK开发能够编译c/c++程序,最终生成so文件。而so文件是一个二进制文件,我们是无法直接分析so文件的,所以这里需要用到一个反编译工具IDA Pro。IDA Pro能够对so文件进行反汇编,从而将二进制代码转化为汇编语言,利用IDA Pro神奇的F5功能还能将汇编语言反编译成c/c++程序。
下载
下载IDA_Pro_v7.0_Portable.zip即可。
安装
直接解压缩即可。
注意:绿色版解压缩路径不要含有中文或者路径长度不能超过72字符。(python模块自身的bug)
使用
双击ida64.exe,打开软件IDA Pro
本来按照我的理解,如果想要反编译的so文件是在arm64-v8a目录下,则只能打开ida64.exe文件;如果想要反编译的so文件是在armeabi目录下,则只能打开ida.exe文件。但是我这边的测试结果时:
ida64.exe:打开arm64-v8a目录下的so文件正常(可以找到调用的方法名),打开armeabi目录下的so文件不正常(无法找到调用的方法名);
ida.exe:打开arm64-v8a目录下的so,打开armeabi目录下的so文件都不正常(无法找到调用的方法名);
所以我目前的操作是双击打开ida64.exe,然后反编译arm64-v8a目录下的so文件!
将so文件拖拽到上面的空白区域,选择”ELF64 for ARM64(Shared object)[elf64.ldw]”选项,然后再点击ok按钮
注意,因为我双击打开的是ida64.exe,所以需要打开的so文件是arm64-v8a目录中的,不能是armeabi目录中的。(以HelloWorld项目为例)
等待一段时间后,我们就能看到反汇编so文件所得到的汇编代码了。
定位到想要查看的函数(一般先定位到项目中调用的第一个函数,比如HelloWorld项目中的stringFromJNI方法)
按键盘上的F5,就可以将汇编代码转换为C代码
源代码如下:
退出(默认即可)
参考资料
so文件反编译为python代码_【反编译系列】四、反编译so文件(IDA_Pro)相关推荐
- 谁是小偷python代码_警察抓到四个人ABCD(小偷是谁 C++)
转载这么多了 发个自己写的程序吧! 警察抓到四个人 ABCD-- 题目:警察抓到四个人 ABCD , A: 我不是小偷 B:c 是小偷 C: 小偷肯定是 D D:C 冤枉我 其中有 1 个人说假话,只 ...
- 简单几段python代码_如何用python跑一段鸿蒙最简单代码?
首先,鸿蒙并不支持python,HarmonyOS代码开发支持多语言,包括Java.XML(Extensible Markup Language).C/C++ . JS(JavaScript).CSS ...
- 商业数据分析模型及其核心Python代码_持续更新
商业数据分析模型_持续更新 一.AARRR模型 二.PEST模型 理论 医美行业应用案例 三.RFM模型 理论 Python实战_核心指标计算 四.SWOT模型 五.5W1H模型 六.流程拆解法 七. ...
- 角谷猜想python代码_查看“Python-2020-fall”的源代码
因为以下原因,您没有权限编辑本页: 您所请求的操作仅限于该用户组的用户使用:用户 您可以查看与复制此页面的源代码.== Python程序设计课程主页(2020年秋季学期) == Teacher: [h ...
- python 代码_如何让Python代码加速运行?
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足.但是,有很多时候,Python 的效率并没有想象中的那么夸张.本文对一些 Python 代码加速运行的技巧 ...
- knn的python代码_《机器学习实战》之一:knn(python代码)
数据 标称型和数值型 算法 归一化处理:防止数值较大的特征对距离产生较大影响 计算欧式距离:测试样本与训练集 排序:选取前k个距离,统计频数(出现次数)最多的类别 def classify0(inX, ...
- 掷骰子python代码_通过构建一个简单的掷骰子游戏去学习怎么用 Python 编程
不论是经验丰富的老程序员,还是没有经验的新手,Python 都是一个非常好的编程语言. Image by : opensource.com Python 是一个非常流行的编程语言,它可以用于创建桌面应 ...
- 仅用几行Python代码就能帮小姐姐复制U盘文件,实用干货
今天有个读大学的小姐姐找到我,问我有没有什么办法可以复制U盘文件,我很疑惑她复制U盘要干啥呢,仔细问了才知道小姐姐打算复制老师的U盘,看里面课件还有练习题,嗯,好学生呀,我就想直接分享出方法,大家一起 ...
- 初学者怎样看懂python代码_新手入门必看,最常用的Python代码片段
对于编程开发人员来讲,Python语法一开始可能看起来很奇怪.如果我们看到Python使用其他编程语言(例如Java)完成常见的工作,那会不会很意思?我们常见的代码片段称为"代码惯用法&qu ...
最新文章
- WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版
- [C++11]shared_ptr共享智能指针的初始化与使用
- Java集合系列---ConcurrentHashMap源码解析
- pytorch之batch_size
- Spark源码分析之Master状态改变处理机制原理
- 腾讯社交广告转化率预估初探
- 团队开发之个人博客八(4月27)
- 通过pip下载python包缓慢的解决方法
- 参加美赛能给计算机保研er带来些什么?
- 计算机微软云同步怎样安装软件,云骑士Win10微软账户设置同步的方法
- javaweb JAVA JSP员工绩效考核管理系统(员工考核管理系统)员工考勤管理系统人事考勤
- php 微信 other,PHP——仿造微信OpenId
- 【The Economist】2018经济学人杂志经济学人双语版阅读分享资源
- vue使用Mars3D实现3d卫星轨道和3d地球图
- 路由器分类2【按功能级别分】
- OpenEmu MAME核心自动更新解决
- python——sys模块
- 自动化测试(定位元素的方式,浏览器操作)
- 取消管理员取得所有权_取消管理员取得所有权|右键管理员取得所有权|win10获取管理员权限...
- Android 极光推送 自定义通知铃声