-
雷迪斯俺的枕头们~ 我之前的博客讲解的大部分是原理。但是开发中我们为了效率和方便经常使用工具
-
不过当然还是要知道原理的,假如工具过期坏掉出问题之类的,我们也可以快速定位解决问题~
-
今天博客写一篇实用性比较高的 ~
1. MonkeyDev & Cycript
- 只要是玩过逆向开发的兄弟们,都会使用一个工具
MonkeyDev
(是真的好用。把重签,注入等等都自动化了),给兄得们一个安装地址: MonkeyDev安装地址,安装过程出现问题可以在 安装可能出现的问题 里面查找
现在最新版
12.5的xcode
安装会闪退
,不过在里面也要解决办法(所以遇到问题先不要慌,当然也可以资讯小谷?)
- 曾经我的博客使用过
某信
,重签名
和注入代码
。我们再用这个试上一波
1.1. MonkeyDev
使用
-
- 我们点击
Xcode
创建一个Monkey
工程
- 我们点击
-
- 完成后。选取
某信
的ipa
或者app
,放到TargetApp
中
- 完成后。选取
ipa
和app
放哪个都可以
-
- 运行就可以了(如果有错应该也好解决,也可以抛给我,我帮兄弟们看看?)
你安装的
插件
,viewDebug
都可以在这里面使用~ (是不是爽到升华~)
1.2. Cycript
使用
- 安装完
MonkeyDev
之后,里面会自带一个叫Cycript
的插件
这个插件感觉有必要说一下子~
-
我来通过一个兄弟们感兴趣的案例说明一下他的使用~
-
- 链接手机~ (在同一网段)
cycript -r xxx.xx.x.xx:6666
-
- 出现下面情况表示成功
-
- 搞起 改一波数据测试
某信
(cycript
厉害之处就是不卡段进程
)
- 搞起 改一波数据测试
我们给兄弟转一波账(强调一波:
小谷是遵纪守法的好公民,我就是想学习下人家的技术。是学习的动力驱使的我~
)
-
- 先转账
-
- 我猜他是个
label
。他如果不是我就再猜~ ?
- 我猜他是个
终端输入: choose(UILabel)
-
- 在输出中寻找
1.00
- 在输出中寻找
-
- 我们找这个的
地址
,看看可不可以改下这个显示
- 我们找这个的
终端输入:#0x13ba82ad0.text = @"¥10000"
-
- 看显示结果
当然,再次退出进入,就恢复了。我们改的只是
显示的text
。
2. Logos
-
刚接触
Logos
时,以为是一门新的语言。兄弟们。并不是的。其实就是他相当于就有几条命令。 -
Logos
语法我就不多说了。兄弟们可以花20分钟看下就会了
~ Logos-语法
2.1. hook的方法
我们直接举例说明比较好懂
-
先搞一个demo:登录吧~
-
我简单画一个界面
代码如下:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *userTextField;
@property (weak, nonatomic) IBOutlet UITextField *pwdTextField;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (IBAction)loginBtnClick:(id)sender {
if ([self isEmpty:_userTextField.text]) {
[self alert:@"username is empty!"];
return;
}
if ([self isEmpty:_pwdTextField.text]) {
[self alert:@"password is empty!"];
return;
}
[self alert:@"login success!"];
}
- (void)alert:(NSString *)title{
UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:title message:nil preferredStyle:(UIAlertControllerStyleAlert)];
UIAlertAction *cancle = [UIAlertAction actionWithTitle:@"OK" style:(UIAlertActionStyleCancel) handler:nil];
[alertVC addAction:cancle];
[self showViewController:alertVC sender:nil];
}
- (BOOL)isEmpty:(NSString *)string{
if (string == nil || string == NULL) {
return YES;
}
if ([string isKindOfClass:[NSNull class]]) {
return YES;
}
if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
return YES;
}
return NO;
}
@end
复制代码
- 接下来我们用
Logos
语法hook
下这个login
按钮
2.2. Logos 使用
-
- 创建
Monkey-demo
,然后把app
放到targetAPP
中
- 创建
-
Logos
可读能力很强,直接用OC
写就可以
这就是所有的代码了,当然,要在
logos文件夹
里面写~
3. 总结
-
小谷是
遵纪守法的好公民
,我就是想学习下人家的技术。是学习的动力驱使的我 -
小谷觉得
逆向
大多数情况靠的是经验,还是要多练
才行 -
Logos语法
非常简单,兄弟们不要和我当初一样,一听是新语法就紧张 -
我们之后
逆向开发
的时候很多时候会使用Monkey
和Logos
-
最后希望兄弟们多多指教?
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END