程序员iOS

iOS逆向反编译

2019-03-23  本文已影响5人  eagleyz

iOS逆向

准备:完美越狱iPhone

逆向APP思路:1,代码分析

2,对Mach-O文件的静态分析MachOView、class-dump、Hopper Disassembler、ida等

3,动态调试 对运行中的APP进行代码调试 p debugserver、LLDB

4,代码编写

5,注入代码到APP中

6,必要时还可能需要重新签名、打包ipa

一、Mac远程登录iPhone

ssh 账户名@服务器主机地址

例如:

ssh root@192.168.8.157 然后输入密码(默认是alpine )

这种方式wifi登录,受到网速限制

1.2 sh login.sh (注:ssh -p 10010 root@localhost)

上面的命令生效是因为已经把 usb.sh 和 login.sh 两个文件做了端口映射并放到了根目录 (映射需要usbmuxd工具包)

另外: 1.echo $PATH 查看设置的根目录,如果自己想写脚本在其他地方都能执行,也可以放在PATH路径下

2.手机和电脑能连接是因为,手机的授权文件 /var/root/.ssh/authorized_keys 中 添加了电脑的公钥 ~/.ssh/id_rsa.pub

Mac上有个服务程序usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iPhone

/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd

下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py

https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz

二、获取手机上软件的ipa包

ps命令是process status

可以过滤关键词,比如 : ps -A | grep WeChat

三、脱壳

Clutch:https://github.com/KJCracks/Clutch

dumpdecrypted:https://github.com/stefanesser/dumpdecrypted/

AppCrackr、Crackulous

也可以用hopper看是否脱壳

cryptid 0 为脱壳 cryptid 1 是加壳

四、反编译出头文件

官方地址:http://stevenygard.com/projects/class-dump/

下载完工具包后将class-dump文件复制到Mac的/usr/local/bin目录,这样在终端就能识别class-dump命令了

常用格式:

class-dump -H Mach-O文件路径 -o 头文件存放目录 -H表示要生成头文件 -o用于制定头文件的存放目录

例如:当前目录下 class-dump -H NewsBoard -o Header (新建一个Header的文件夹) 这时候可以用hopper 等分析代码了

五、theos

2.利用brew安装ldid

$ brew install ldid

$ vim ~/.bash_profile

2.在􏰝..bash_profie􏰛 文件后面加入下面两行

export THEOS=~/theos
export PATH=THEOS/bin:PATH

3,让.bash_profie配置的环境变量立即生效(或者重新打开终端)

>$ source ~/.bash_profile

git clone --recursive https://github.com/theos/theos.gitTHEOS

cd ~/Desktop nic.pl

2,选择􏱋􏱌[13.] iphone/tweak

3,填写项目信息

名称 项目ID随便写, MobileSubstrate Bundle filter 写应用的id 其他回车

六、编写代码

具体情况具体分析

七、打包编译安装

当前tweak文件目录下make clean && make && make package && make install (已经写好了文件,可以直接 sh ~/tweak.sh

自己做的插件在 Device/Library/MobileSubstrate/DynamicLibraries

八、theos资料

九、MAC、IPhone 软件破解

例:PC软件破解 ./YZCTest

例:网易新闻去广告 NTESNBNewsListController hasAd

例:优酷去掉90s开头广告 XAdEnginePreAdModule setupVideoAd needAd

如果是未越狱的IPhone 则还需要打包签名等操作。

十、动态调试

十一、签名打包

十二、其他笔记:

Tweak 技巧

1,加载 图片资源 创建 layout 文件夹 相当于Device/Library

图片会放在 在Device/Library/PreferenceLoader/Preference

2,自己做的插件在 Device/Library/MobileSubstrate/DynamicLibraries

3,#define YZFile(path) @"/Library/PreferenceLoader/Preferences/yzxmly/" #path

4,多个文件,多个目录,引用头文件要使用路径比如 @import “abc/def/person.h”

5,路径 全路径,或者 代替 比如:src/test.xm src/.m (中间一个空格)

6,如果自己增加类,方法属性等,要声明的话

eg:

@interface yzdefine

-(void)vipReOpenPlayer;

@end</pre>

上一篇 下一篇

猜你喜欢

热点阅读