Lemon's blog

所有的东西你都要坚持到最后才知道值不值得


  • 家

  • 归档

  • 分类

  • 标签

  • 搜索

iOS字符串加密以及静态混淆

发表于 2018-07-25 | 分类于 iOS 开发 |
字数统计: 916 | 阅读时长 ≈ 4

0x01 字符串加密

0x01

在开发中我们总是会用到加解密,有些同学可能不注意会直接把对称加密的key直接写到程序中,这样使用Hopper或者IDA静态分析的时候是可以直接看到加密的key,这样容易被别人破解,所以需要采用一些方法对文件里面的key进行加密,使得在静态分析阶段无法直接获取加密的key,增加逆向难度。

0x02

在这里我们可以使用异或计算方法对某一个key进行加密,异或的原理是如果二进制位相同则为0,不相同则为1,如果a^b = c,那么b^c=a。

阅读全文 »

LLDB解密framework

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 517 | 阅读时长 ≈ 2

除了使用dumpdecrypted去解密APP和framework的内容以外,也可以使用LLDB直接从内存中dump出解密后的模块。

阅读全文 »

dumpdecrypted介绍及其使用

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 875 | 阅读时长 ≈ 4

1.介绍

dumpdecrypted 是一个开源的工具,它会注入可执行文件中,动态的从内存中dump解密后的内容。

##2.原始版dumpdecrypted使用

###2.1下载以及编译dumpdecrypted

从github下载源代码并且编译:

1
2
3
4
5
6
7
8
MacBookPro:dumpdecrypted lemon$ git clone https://github.com/stefanesser/dumpdecrypted.git
Cloning into 'dumpdecrypted'...
remote: Counting objects: 31, done.
remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31
Unpacking objects: 100% (31/31), done.
MacBookPro:dumpdecrypted lemon$ cd dumpdecrypted/
MacBookPro:dumpdecrypted lemon$ make
`xcrun --sdk iphoneos --find gcc` -Os -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -c -o dumpdecrypted.o dumpdecrypted.c
阅读全文 »

iOS 逆向常用工具

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 1,519 | 阅读时长 ≈ 6

mac工具

效率工具

  • iTerm2

代替默认的Terminal,提供了很多高级设置,例如自动补全,高亮等等

  • oh-my-zsh

自定义主题,git显示,Tab补全等

  • Go2Shell

从finder中打开终端并且自动切换到当前目录

  • Alfred

工作流软件,快速打开软件,添加自己的工作流。参见bestswifter的博客

阅读全文 »

iOS 逆向常用命令

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 595 | 阅读时长 ≈ 3

1. 查看信息相关

  • 查看越狱设备所有的APP的BundleID (前提需要安装frida-iOS-dump)

MacBookPro:frida-ios-dump-master lemon$ ./dump.py -l

  • 查看设备UDID (前提需要安装ideviceinstall)

MacBookPro:~ lemon$ idevice_id -l

  • 查看iPA是否已经砸壳 (如果返回cryptid=0代表已砸壳,否则代表未砸壳)

MacBookPro:~ lemon$ otool -l target.app/target | grep cryptid

阅读全文 »

通过theos提供的logify来为类的所有方法添加追踪日志

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 610 | 阅读时长 ≈ 2

1.简介

###logify是THEOS自带的为代码添加Log的工具,可以使用该工具给指定的类添加Log代码并且生成一个新的Tweak.xm文件

2.用法

2.1 准备工作

2.1.1 安装Theos

首先需要安装Theos,安装完成之后会默认安装此工具。

阅读全文 »

导出iOS真机缓存的dyld_shared_cache_arm64文件

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 708 | 阅读时长 ≈ 3

1前言

在iOS系统中,存在着这么一个文件夹,/System/Library/Caches/com.apple.dyld,这个文件夹里面放着的是什么文件呢,在我的iphone5s中,两个文件dyld_shared_cache_armv7s和dyly_shared_arm64,这两个文件分别代表两个arm架构,一个是armv7s一个是arm64。

阅读全文 »

dsc_extractor的编译和使用

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 646 | 阅读时长 ≈ 3

1前言

在iOS逆向中,我们常常需要对dyld_shared_cache_armX类型的文件进行还原,第一个我们经常使用的是dyld_decache工具,但是这个工具并不能用从来还原dyld_shared_cache_arm64文件,也就是64位指令集架构的缓存文件,这个时候dsc_extractor就为你续命了。

阅读全文 »

iOS 基础汇编知识

发表于 2018-07-25 | 分类于 iOS 开发 |
字数统计: 1,619 | 阅读时长 ≈ 7

1 寄存器 内存 栈

在高级语言里面,操作对象是变量,在ARM汇编里面,操作对象是寄存器(register),内存和栈(stack)

阅读全文 »

LLDB && debugserver的使用

发表于 2018-07-25 | 分类于 iOS 逆向 |
字数统计: 1,643 | 阅读时长 ≈ 7

1.1 LLDB

LLDB全称为low level debugger,是xcode自带的动态调试工具,可用于c,c++,objective-c,全盘支持iOS,OSX以及iOS模拟器。
LLDB有以下四个功能:

1.在特定的情况下暂停程序

2.在特定的情况下启动程序

3.在程序停止的情况下检查程序内部

4.在程序停止的情况下改动程序,观察执行过程。

LLDB是运行在OSX程序中的,可以通过特定的语句配合debugServer对iOS中的程序进行监视。

阅读全文 »

1…345
lemon

lemon

iOS Developer | 拥抱变化 | 🍋😊

50 日志
5 分类
41 标签
RSS
GitHub E-Mail
© 2019 lemon