2017 年,本该从事IOS 工作的我,由于公司需要,以及个人对新鲜事物的兴趣,一次机会让我接触到了逆向行业。
A: 第一次接触逆向就做的是ASO ,也就是所谓的(App store Optimization),我依然清晰记得拦截到别人程序的快感,根据需求分析appstore 的排名规则,以及关键词的检索规则。开始用盘古越狱或者pp守护,等等越狱工具,熟悉cydia 工具,openssh 安装,以及命令。通过openssh 安装到cydia 的插件程序。 具体Clutch-2.0.4 砸壳,通过class-dump,是可以把Objective-C运行时的声明的信息导出来的工具。其实就是可以导出.h文件。用class-dump可以把未经加密的app的头文件导出来。然后检索代码,通过tweak 框架,编写代码注入,这也就是所谓的静态分析,当然有静态也就有动态,动态调试更能直接找到入口点,一步一步用debugserver+lldb代替gdb进行动态调试。遇到比较复杂的,就用的比较多的IDA . 通过基地址算偏移量找到目标地址。通过自己的不断努力和探索,做出来一套aso 自动化软件(包含直接检索目标,登陆,下载,注销,换账号),大大减轻公司用企业版触动精灵产生的投入成本和效率成本。
B: 慢慢的就是开始根据各种需求,做相对应的软件, 包括基于 xcode + AloneMonkey, 做的一套cpa (刷活跃度)软件框架。以及微信群组采集器, lua + oc 框架 配合触动灵活的使用。
C:由于房子装修,孩子上学,就回到西安,找逆向工作,公司需要做android 逆向,然后就开始android 方面的挑战, 一步一步地又开始探索,有ios 逆向经验了,android 稍微轻松点, 基本上相通的,android Android Killer 这个算是反编译工具,通过工程管理器可以查看到smail 代码,可以直接转smail 代码为java 代码。xposed 框架是一个提供代码注入的框架,专门写了个android 逆向文章,以及ida 的使用。 通过自己的努力,完成了qq 账号登陆,切换,注销等功能,彻底通过插件工具,替代公司之前的按键触摸,效率大大提高,后来通过不断地学习, 就开始做协议方面的工作,也就是完全脱离客户端了, 基本用到的工具包含,抓包Wireshark,Fiddler,Charles ,自己写的一个专门通过hook,根据android 方面常用的加密方式,AES/GCM/NoPadding,SHA,DES/CBC/PKCS5Padding,RSA,md5, AES/ECB/NoPadding等, 打印出加密前加密后的结果,配合加密助手,推算出加密方式。
完成腾讯充值协议,易语言写的工具,可以一键完成通过q币方式支付的各种游戏充值。
D: 当时公司有windows 方面的逆向,个人兴趣也就了解了一些,动态调试工具有OD和windbg, 侦壳工具一般用PEid,编辑工具主要选UltraEdit,文件和注册表监视工具一般用process monitor,虚拟机vmware,
总之逆向需要极强的耐搓性,以及自我不断的坚持,再加那么一点点运气。
网友评论