iOS逆向安防从入门到秃头--Cycript&Logos

小谷秃头合集php

  • 雷迪斯俺的枕头们~ 我以前的博客讲解的大部分是原理。可是开发中咱们为了效率和方便常用工具git

  • 不过固然仍是要知道原理的,假如工具过时坏掉出问题之类的,咱们也能够快速定位解决问题~github

  • 今天博客写一篇实用性比较高的 ~xcode

1. MonkeyDev & Cycript

  • 只要是玩过逆向开发的兄弟们,都会使用一个工具MonkeyDev(是真的好用。把重签,注入等等都自动化了),给兄得们一个安装地址: MonkeyDev安装地址,安装过程出现问题能够在 安装可能出现的问题 里面查找

如今最新版12.5的xcode安装会闪退,不过在里面也要解决办法(因此遇到问题先不要慌,固然也能够资讯小谷😆)markdown

  • 曾经个人博客使用过 某信重签名注入代码。咱们再用这个试上一波

1.1. MonkeyDev使用

    1. 咱们点击Xcode 建立一个Monkey工程

1.png

    1. 完成后。选取某信ipa或者app,放到TargetApp

2.png

3.png

ipaapp放哪一个均可以app

    1. 运行就能够了(若是有错应该也好解决,也能够抛给我,我帮兄弟们看看😆)

4.png

你安装的插件viewDebug均可以在这里面使用~ (是否是爽到升华~)iphone

1.2. Cycript使用

  • 安装完MonkeyDev以后,里面会自带一个叫Cycript的插件

这个插件感受有必要说一会儿~工具

  • 我来经过一个兄弟们感兴趣的案例说明一下他的使用~oop

    1. 连接手机~ (在同一网段)

cycript -r xxx.xx.x.xx:6666post

    1. 出现下面状况表示成功

5.png

    1. 搞起 改一波数据测试某信cycript厉害之处就是不卡段进程

咱们给兄弟转一波帐(强调一波:小谷是遵纪守法的好公民,我就是想学习下人家的技术。是学习的动力驱使的我~

    1. 先转帐

6.png

    1. 我猜他是个label。他若是不是我就再猜~ 😆

终端输入: choose(UILabel)

    1. 在输出中寻找 1.00

7.png

    1. 咱们找这个的地址,看看可不能够改下这个显示

终端输入:#0x13ba82ad0.text = @"¥10000"

    1. 看显示结果

8.png

固然,再次退出进入,就恢复了。咱们改的只是显示的text

2. Logos

  • 刚接触Logos时,觉得是一门新的语言。兄弟们。并非的。其实就是他至关于就有几条命令。

  • Logos语法我就很少说了。兄弟们能够花20分钟看下就会了~ Logos-语法

2.1. hook的方法

咱们直接举例说明比较好懂

  • 先搞一个demo:登陆吧~

  • 我简单画一个界面

9.1.jpg

代码以下:

@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按钮

10.png

2.2. Logos 使用

    1. 建立Monkey-demo,而后把app放到targetAPP

11.png

    1. Logos可读能力很强,直接用OC写就能够

12.1.png

这就是全部的代码了,固然,要在logos文件夹里面写~

3. 总结

  • 小谷是遵纪守法的好公民,我就是想学习下人家的技术。是学习的动力驱使的我

  • 小谷以为逆向大多数状况靠的是经验,仍是要多练才行

  • Logos语法很是简单,兄弟们不要和我当初同样,一听是新语法就紧张

  • 咱们以后逆向开发的时候不少时候会使用MonkeyLogos

  • 最后但愿兄弟们多多指教😜

相关文章
相关标签/搜索