接下来的几篇文章,小程以微信为例,实战地演示一下:如何注入iOS的APP.其中使用到的知识,基本在前面的文章中都有介绍到. 小白:小程,我想用回旧版本的微信! 小程:为什么要用旧版本微信呢? 小白:你不知道,我装一个旧版本的可共存的微信,再装一个最新版本的微信,我就可以同时登陆两个账号, 然后就可以在群里面互粉装逼了.但微信5.0版本提示我版本太低,不给用,要升级!你有没有办法骗过服务器呢? 本文解决一个问题:让低版本的微信可以使用. (1)安装与运行 在网上搜索微信的历史版本,下载一个兼容多开…
这一次,小程演示怎么让一个APP自动地运行,从而代替手工的操作.同样以"微信"以例,实现在一个微信群里面,对所有的成员,自动地一个一个地发出添加好友的请求. 知识点还是之前介绍的东西,流程方面还是跟踪与最终注入.因为这是一个系列的文章讲解(微信公众号"广州小程" -> 逆向开发),所以读者可以联系前面的文章来理解,用自己的话"翻译"成自己的知识与经验. 本文解决一个问题:如何让第三方程序自动化地运行. (一)批量添加好友的效果 小程使用&q…
小白:小程,我一直想问,什么是逆向来着?是逆向行驶吗? 小程:理解为逆向行驶也没错.一般的项目是从无到有,而逆向是从已有的状态入手,分析出已有的流程与结构的手段. iOS上的逆向开发,是一件有趣的事情(虽然有时很痛苦),而且还可能给你带来收益. 在接下来的几篇文章,小程会尝试介绍iOS逆向的一系列的知识与技能:从基础工具的使用,到目标类的定位.目标代码的调试,再到注入微信的实战示例. 本文介绍iOS逆向的基础工具的使用. 硬件方面,你需要一台iOS设备(iphone/itouch/ipad,以下…
仍然以微信为例,实战地练习一下使用Reveal.iOSOpenDev等工具注入APP的流程,积累经验.这一系列的文章都是学习过程的总结,不带任何商业目的. 本文解决一个问题:如何伪造一个经纬度,在微信的附近的人中,看到外国的朋友. 小白:我要瞬间移动到旧金山,看看黄师傅的宝芝林的同事们! 之前小程已经介绍了常规的注入流程,这里只介绍一些差别的东西,以及具体的注入操作. 想要伪造位置,最好的办法就是,找到获取位置的函数,返回一个目标位置即可. (1)获取位置的函数 在定位这个函数时,可以从界面入手…
上一节小程介绍了微信在进入"附近的人"时修改位置信息的办法,这一次,小程来修改"自己"的信息,伪装成别人. 但是,这里的伪装只是"本地的伪装",也就是看到"自己"变成了他人,而实际上,在服务端(别人看到的)还是没有变化的,那就更不会迫使被伪装的人下线了,也不能以对方的身份发送信息或发朋友圈. 伪装成别人的表现是,小程手机上的微信信息完全变成目标对象的信息,连相册也变成对方的相册.所以,如果对方是好友则相册全是对方发朋友圈的内容…
从获得APP的所有类声明,到锁定目标类与函数,现在是时候注入函数了. 所谓"注入函数",小程的意思是让APP执行到小程写的代码中,跟"钩子"的概念一致.小程把个叫作iOS上的hook的技术. 本文介绍iOS注入函数的办法. 在借助框架之前,先介绍一个简单的注入办法,你可以"感性"地认识到"动态绑定"所带来的注入. (一)动态绑定的一个示例 (1)锁定注入点 随便找一个APP,classdump拿到所有类的结构信息. 比如,&q…
之前介绍了怎么操作越狱的iOS设备(以下简称为手机),但简单操作手机并不是目标,小程的目标是手机上特定的APP,比如微信.淘宝.QQ音乐等等,因为小程可以从这些APP上拿到一些有用的信息或资源--比如,"微信的那个页面是用什么控件来布局的?"."QQ音乐的歌手头像,能批量地拿到吗?",等等. 很明显,如果你知道目标APP的所有类的声明,你就可能直接观察到,或者推导到一些有用的信息.实际上,把目标APP的类信息拿到,是至关重要的一步,因为这一步的成功让你有了分析的资料…
小白:小程,你知道有些iOS程序是没人性的吗?老是不按我的意愿来运行! 小程:我怎么知道你的意愿就是有人性的? 本文解决一个问题:修改别人的二进制程序并运行起来. 让别人的程序按你的意愿来运行,文明一点的做法就是拿到源码后加上自己的修改再生成新的程序并安装. 小白:哇,这句话好长,你能一口气说完吗? 但是,很多情况下我们是没有源码的,那怎么办呢? 一个办法是把执行程序的指令或者数据改掉:另一个办法是让程序执行到自已的代码上,再把流程或内存值给改掉.最终,让程序按自己的想法来运作. 小白:还能让程…
之前介绍了怎么获取APP的所有类的结构信息,这个有什么用呢?用处大了,比如以这一步为基础,下一步通过注入来做更多研究工作. 注入的最小单位是函数,实际上,编译执行的程序在编译后,类就不复存在了,留下来的只是二进制代码(指令或数据都是一样的二进制代码).所幸的是,跟我们打交道的,并不是二进制代码(那会困难很多),而是函数,而且是某个类的函数. 那么,在用classdump拿到成千上万个类与函数后,哪个函数才是我们关心的呢?怎么锁定它们呢? 本文介绍锁定目标类与函数的可行的办法. 基本上小程研究的目…
上一篇做了一个smart qq机器人. 前几天,因为突然上不了  smart qq,以为TX 要抛弃了..所以就没有接着完善smart 机器人.应朋友要求,做一个多开微信. 做了几天已经做好了,理论上最少可以28开微信,最多可以56开微信.同时在线同时收发信息,业务处理等..(不知道同一个IP多个微信登录会不会被封,稳妥一点做一个代理上去是最好的,目前没空将就先) 实际上我只试过4开微信,没有问题.(我只有四个微信,所以极限我也不知道,下图只是两个号,在公司没带手机) 界面很丑,没办法我是做业务…