Android逆向之so的半自动化逆向
因为工作需要,转型干android逆向,有几个月了。不过对于so的逆向,任然停留在,难难难的阶段,虽然上次自己还是逆向了一个15k左右的小so文件,但是,那个基本是靠,一步一步跟代码,查看堆栈信息来自己得到的结论。
下面来说说,什么是半自动化吧,我是这样认为的。
很多时候,由于so只是一个加密算法,或者什么操作,并且相当复杂,所以我们并不需要对他进行完全逆向,因为那样很麻烦。
版本1. 自己写一个app,使用某个需要逆向算法的so文件,然后在app中调用那个算法。使用http协议提供接口,供exe程序调用。
这样写,无非就是自己写了一个app,然后加入了,某款应用的so文件,进行逆向操作,通过http传入参数,调用so算法,得到返回值,可以在不逆向so的情况下进行算法调用。
不过这样写,也是有一些麻烦的,针对so多个相互调用和,对app耦合比较高,可能有时候这样,就会报错,报一些找不到原因的错误。
版本2.使用xposed+app的方法,来调用其他app的so的算法,同样提供http服务接口。来给其他第三方程序调用。
这样,无非就是找到算法的加密地点,然后进行调用。一般大公司的app,这种方式都是可以拿下,至于小公司的就不好说了,因为很多小公司,so和java代码都是一批人写的,
他们可能会做一些比较恶心的处理。所以比较麻烦。
大神版本:我想大神应该都是把别人so算法逆向出来了,所以不需要依赖上面的这种方式,
但是这种方式也有他的优势所在,就是高效,可以在不具体操作算法的情况下,进行操作。
YY版本:(yiyin版本)这种版本是我最喜欢的了,就是,打入敌人内部。。。嘎嘎。。直接源码。。
总结:
已经三个月没有写过东西,感觉手生疏得不可收拾。。。哎,先写几篇,充充数,后面再分享点比较精彩的文章。。。欢迎品鉴。
后话:
脑壳有点昏,导致排版有点差,见谅,见谅。
Android逆向之so的半自动化逆向的更多相关文章
- 网络协议自动化逆向工具开山鼻祖discoverer 分析
本文系原创,转载请说明出处:信安科研人 也可关注微信公众号:信安科研人 原论文发表在2007年的USENIX上,链接如下:https://www.usenix.org/legacy/event/sec ...
- 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE
C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...
- k.tt 研究下生成的逻辑代码:从壹开始前后端分离 [.netCore 填坑 ] 三十二║ 四种方法快速实现项目的半自动化搭建
更新 1.更新小伙伴 @大龄Giser 提出好点子:试试VS的插件扩展:VSIX.ItemProject等,将T4模板给制作插件,这里先记下,有懂的小伙伴可以自己先试试,我会在以后更新. 2.感谢小伙 ...
- 浅谈mybatis如何半自动化解耦
在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis. 通过研究mybatis源码,可将mybatis的大 ...
- 利用Visual Studio 2017的扩展开发(VSIX、ItemTemplate) 快速实现项目的半自动化搭建
目录 0.引言 1.什么是Visual Studio项目模板 2.IWizad接口 3.通过Visual Studio扩展开发实现领域驱动开发 3.1 使用VSIX+ProjectTemplate创建 ...
- 利用Python半自动化生成Nessus报告
0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的.当然,个人用户是有16个I ...
- 缓存策略 半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis
springboot入门(三)-- springboot集成mybatis及mybatis generator工具使用 - FoolFox - CSDN博客 https://blog.csdn.net ...
- Sharepoint 2013企业内容管理学习笔记(一) 半自动化内容管理
大家好,今天我来与大家分享一个关于sharepoint2013文档管理方面的一个知识,我相信也许早就有人了解并熟知这项技术了,呵呵,众所周知,sharepoint 有一个很亮的功能,什么?没错,就是文 ...
- 浅谈mybatis如何半自动化解耦和ORM实现
在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis. 通过研究mybatis源码,可将mybatis的大 ...
随机推荐
- JS使用循环按指定倍数分割数组组成新的数组的方法
今天一个新人同事问了我一个问题,就是有一个像下边这种不知道具体长度的数组,想以每4个为一组,重新组合为一个二维数组,很简单的需求只需要用到一个循环再去取余数就可以了,写了一个小demo在这里把代码包括 ...
- Java客户端API
添加依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookee ...
- Web前端:如何实现选择select下拉框选中跳转其他页面
<select onchange="window.location=this.value;"><option value="a.html"&g ...
- linux 下 tomcat 安装
下载 根据已安装的jdk版本选择合适的版本,否则不兼容 https://tomcat.apache.org/whichversion.html 选择合适的压缩包 源码 二进制:已针对固定的操作系统和机 ...
- 您是不是奇怪为什么 <script> 标签中没有 type="text/javascript" 属性?
在 HTML5 中该属性不是必需的.JavaScript 是 HTML5 以及所有现代浏览器中的默认脚本语言!
- 史上最全的判断android,ios还是ipad访问,附上多种语言的实现方式
js判断: (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elain ...
- 在windows64位Anaconda3环境下安装XGBoost
安装步骤参考的是: "Installing XGBoost For Anaconda on Windows":https://www.ibm.com/developerworks/ ...
- JQ滚动特效
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- js_6_dom选择
什么是dom编程? 找 找到html中的标签,赋值给一个变量 改 通过更改这个变量动态地更改html中的内容 返回的内容为列表 如何找到那些标签? id:var find = document.get ...
- 递归演示程序(swift)
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...