因为工作需要,转型干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版本)这种版本是我最喜欢的了,就是,打入敌人内部。。。嘎嘎。。直接源码。。
总结:
已经三个月没有写过东西,感觉手生疏得不可收拾。。。哎,先写几篇,充充数,后面再分享点比较精彩的文章。。。欢迎品鉴。
后话:
脑壳有点昏,导致排版有点差,见谅,见谅。