没密码怎么登陆别人微信|怎么打开别人微信密码

没密码怎么登陆别人微信(怎么打开别人微信密码)需要准备一份资料 , WeChat 官方的header文件 , 使用sublime打开 。
没密码怎么登陆别人微信|怎么打开别人微信密码



需要完成这篇文章中介绍的内容 , 需要了解一下注入Framework的相关知识 。
(可查看我的文章:iOS开发|Framework注入 , 让别人的软件执行我们的代码)
完成了Framework的注入后 , 我们被注入的代码会执行 , 达到这种状态:
没密码怎么登陆别人微信|怎么打开别人微信密码



Xcode 动态调试分析动态分析是我们找到突破口非常重要的能力 , 这里确定了我们达到目的的途径 。没密码怎么登陆别人微信(怎么打开别人微信密码)
一、找到方法

思路:为了获取用户的密码 , 我们需要在用户输入完成时取得密码 , 因为不知道用户在何时输入完成 , 是否修改 , 所以最好的拦截地方就是点击登录按钮时 。
于是我们就要先找到登录按钮的方法 。
这里主要是通过 ViewDebug 找到登录按钮的 target 和 action , 发现 Controller 是
WCAccountMainLoginViewController , action 是 onNext 。
验证是否正确 , 我们 po 一下 , 发现调用并没有报错 , 说明找到了这个方法 , 是属于
WCAccountMainLoginViewController 的一个实例方法 onNext 。
没密码怎么登陆别人微信|怎么打开别人微信密码



二、找到密码控件
找到了Controller , 我们分析整个 UI 界面 。Password 控件和Log in 在同一个Controller , 所以我们想要从方法 onNext 中拿到控件就需要找到承载的密码控件 。
没密码怎么登陆别人微信|怎么打开别人微信密码



2.1、首先去 Controller 的属性百思特网中找 , 来到sublime , command+shift+f , 输入 @Interface
WCAccountMainLoginViewController 。
很容易就找到了它 , 这个控件肯定就是密码输入控件 。
没密码怎么登陆别人微信|怎么打开别人微信密码



2.2、继续寻找 WCAccountTextFieldItem 类 , 看其中是否有 text 字段 , 如果有这肯定就是密码了 。
没密码怎么登陆别人微信|怎么打开别人微信密码



2.3、发现没有百思特网 , 但是有父类 , 继续从父类中寻找 。找到了!
没密码怎么登陆别人微信|怎么打开别人微信密码



通过代码分析也能验证 , 从动态调试中拿到这个类 , po 一下就找到了text 。
没密码怎么登陆别人微信|怎么打开别人微信密码



代码实现 , 拿到用户密码一、拿到密码
上面通过方法找到了Controller , action , 百思特网和 text 所属对象的类 。接下来就是通过代码获取到用户的密码了 。实现如下 , 思想仍然是交换方法 , 从自己的方法中拿到密码 。
没密码怎么登陆别人微信|怎么打开别人微信密码



恭喜!通过OC方法 , 我们拿到了用户输入的密码 。
但是这个有一个问题:我们必须要让用户继续登录 , 否则登录功能被破坏了 。
二、让登录继续执行
有人想到 , 直接在my_onNext方法中直接调用原来的方法 , 因为方法已经交换了嘛 。这样对不对呢?
肯定不行!因为我们现在所属的类是我们自己建的类 , 并不是像正常一样在category中实现的 。所以 , 可想而知 , 此时 self 是
WCAccountMainLoginViewController , 使用 [self my_onNext] 调用方法会崩溃 , 因为
WCAccountMainLoginViewController 中并没有my_onNext 这个方法 。
为了解决调用崩溃问题 , 我们很容易想到的办法就是 , 添加一个my_onNext 方法 , 既然没有 , 那就添加一个让它有 , 不就解决了吗?

【没密码怎么登陆别人微信|怎么打开别人微信密码】