因为工作需要,转型干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的半自动化逆向的更多相关文章

  1. 网络协议自动化逆向工具开山鼻祖discoverer 分析

    本文系原创,转载请说明出处:信安科研人 也可关注微信公众号:信安科研人 原论文发表在2007年的USENIX上,链接如下:https://www.usenix.org/legacy/event/sec ...

  2. 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE

    C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...

  3. k.tt 研究下生成的逻辑代码:从壹开始前后端分离 [.netCore 填坑 ] 三十二║ 四种方法快速实现项目的半自动化搭建

    更新 1.更新小伙伴 @大龄Giser 提出好点子:试试VS的插件扩展:VSIX.ItemProject等,将T4模板给制作插件,这里先记下,有懂的小伙伴可以自己先试试,我会在以后更新. 2.感谢小伙 ...

  4. 浅谈mybatis如何半自动化解耦

    在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis. 通过研究mybatis源码,可将mybatis的大 ...

  5. 利用Visual Studio 2017的扩展开发(VSIX、ItemTemplate) 快速实现项目的半自动化搭建

    目录 0.引言 1.什么是Visual Studio项目模板 2.IWizad接口 3.通过Visual Studio扩展开发实现领域驱动开发 3.1 使用VSIX+ProjectTemplate创建 ...

  6. 利用Python半自动化生成Nessus报告

    0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的.当然,个人用户是有16个I ...

  7. 缓存策略 半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis

    springboot入门(三)-- springboot集成mybatis及mybatis generator工具使用 - FoolFox - CSDN博客 https://blog.csdn.net ...

  8. Sharepoint 2013企业内容管理学习笔记(一) 半自动化内容管理

    大家好,今天我来与大家分享一个关于sharepoint2013文档管理方面的一个知识,我相信也许早就有人了解并熟知这项技术了,呵呵,众所周知,sharepoint 有一个很亮的功能,什么?没错,就是文 ...

  9. 浅谈mybatis如何半自动化解耦和ORM实现

    在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis. 通过研究mybatis源码,可将mybatis的大 ...

随机推荐

  1. JS使用循环按指定倍数分割数组组成新的数组的方法

    今天一个新人同事问了我一个问题,就是有一个像下边这种不知道具体长度的数组,想以每4个为一组,重新组合为一个二维数组,很简单的需求只需要用到一个循环再去取余数就可以了,写了一个小demo在这里把代码包括 ...

  2. Java客户端API

    添加依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookee ...

  3. Web前端:如何实现选择select下拉框选中跳转其他页面

    <select onchange="window.location=this.value;"><option value="a.html"&g ...

  4. linux 下 tomcat 安装

    下载 根据已安装的jdk版本选择合适的版本,否则不兼容 https://tomcat.apache.org/whichversion.html 选择合适的压缩包 源码 二进制:已针对固定的操作系统和机 ...

  5. 您是不是奇怪为什么 <script> 标签中没有 type="text/javascript" 属性?

    在 HTML5 中该属性不是必需的.JavaScript 是 HTML5 以及所有现代浏览器中的默认脚本语言!

  6. 史上最全的判断android,ios还是ipad访问,附上多种语言的实现方式

    js判断: (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elain ...

  7. 在windows64位Anaconda3环境下安装XGBoost

    安装步骤参考的是: "Installing XGBoost For Anaconda on Windows":https://www.ibm.com/developerworks/ ...

  8. JQ滚动特效

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. js_6_dom选择

    什么是dom编程? 找 找到html中的标签,赋值给一个变量 改 通过更改这个变量动态地更改html中的内容 返回的内容为列表 如何找到那些标签? id:var find = document.get ...

  10. 递归演示程序(swift)

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...