发新帖

ios调试思路(补充)

[复制链接]
18287 12
本帖最后由 wruih 于 2015-8-5 14:32 编辑

动态调试方法:
先在ipad安装openssh,再安装gdb
.PC 端运行 SSH 客户端一般是putty,连接到设备,输入用户名:
root,默认密码: alpine,
1.动态调试,主要工具gdb
首先,ps -ax|grep "要破解的程序名",得到其进程id,如1234
接着,使用gdb,用attach “进程id”
然后,bt查看函数调用栈,找到可疑函数后,使用up
继续,用si等命令单步跟踪,set等命令改变参数的值
再来,使用disassemble命令,查看确认要修改的二进制字符串
最后,用十六进制编辑器查找并修改二进制字符串   
2. 动静结合,主要工具otool + gdb
a. otool -tV "目标程序" > dis.asm
b. 文本编辑器打开 dis.asm,查找可疑的函数
c. 使用gdb打开目标程序,并在可疑的函数中设置断点,如 b *0x00001234
d. run 运行程序,断点处,si 等跟踪, set 设置关键参数值
e. 用计算器计算需要修改的序列偏移,或disassemble命令
f. 用十六进制编辑器查找并修改二进制字符串
常用的命令
attach 1234; b *0x1234;clear *0x1234;bt;disassemble;si;finish;set $eax
gcc test.c -o test;otool -tV target > dis.asm
另一种方法是,加壳源程序在运行时候会自动解密,运行应用时动态调试 dump出关键代码 再用IDA分析。
IDA左边 Functions window 看出来,函数是以“ sub_”开头的说明已经加密
root# gdb -e ./iRead
(gdb) dump memory dec.bin 0x3000 0x837000

举报 使用道具

回复

精彩评论12

hmc1985    发表于 2015-8-8 10:17:02 | 显示全部楼层
请问有些ios应用,函数混淆过,里面全是sub+数字的这种函数,如何才能找到可疑函数呢?

点评

sub不是混淆,是识别不出来 ,搜字符串 ,搜框架,上动态调试 ,上script。看函数和页面对应关系  详情 回复 发表于 2015-8-12 21:11

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-12 21:11:14 | 显示全部楼层
hmc1985 发表于 2015-8-8 10:17
请问有些ios应用,函数混淆过,里面全是sub+数字的这种函数,如何才能找到可疑函数呢? ...

sub不是混淆,是识别不出来 ,搜字符串 ,搜框架,上动态调试 ,上script。看函数和页面对应关系

举报 使用道具

回复 支持 反对
dazhaxie2015    发表于 2015-8-24 13:59:25 | 显示全部楼层
hmc1985 发表于 2015-8-8 10:17
请问有些ios应用,函数混淆过,里面全是sub+数字的这种函数,如何才能找到可疑函数呢? ...

所谓的sub_xxxxx函数是C函数 这些函数不是用OC编写的,这类函数的目的通常是敏感操作比如用户名和密码,涉及到c的指针操作,比较复杂

点评

大神正解  详情 回复 发表于 2015-8-24 20:01

举报 使用道具

回复 支持 反对
ken    发表于 2015-8-24 17:10:44 | 显示全部楼层
先顶再看         

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-24 20:01:56 | 显示全部楼层
dazhaxie2015 发表于 2015-8-24 13:59
所谓的sub_xxxxx函数是C函数 这些函数不是用OC编写的,这类函数的目的通常是敏感操作比如用户名和密码, ...

大神正解

举报 使用道具

回复 支持 反对
hmc1985    发表于 2015-8-25 15:00:00 | 显示全部楼层
最近看了一个梦幻西游这个ios游戏,用ida分析,里面的方法基本都是sub_xxx的,发现这个游戏是用cocos2d写的,是不是因为这个原因,才导致ida显示不出具体的方法名?

点评

是的 少年  详情 回复 发表于 2015-8-25 16:26

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-25 16:26:42 | 显示全部楼层
hmc1985 发表于 2015-8-25 15:00
最近看了一个梦幻西游这个ios游戏,用ida分析,里面的方法基本都是sub_xxx的,发现这个游戏是用cocos2d写的 ...

是的  少年

点评

那像这种用cocos2d写的游戏,我们应该通过什么方法去分析呢?全是些sub开头的函数,搜出的字符串也全是系统里面的,有种无从分析的感觉  详情 回复 发表于 2015-8-26 10:23

举报 使用道具

回复 支持 反对
hmc1985    发表于 2015-8-26 10:23:13 | 显示全部楼层

那像这种用cocos2d写的游戏,我们应该通过什么方法去分析呢?全是些sub开头的函数,搜出的字符串也全是系统里面的,有种无从分析的感觉

点评

搜api,搜字符串,找关键函数 上lldb!  详情 回复 发表于 2015-8-26 11:55

举报 使用道具

回复 支持 反对
wruih    发表于 2015-8-26 11:55:52 | 显示全部楼层
hmc1985 发表于 2015-8-26 10:23
那像这种用cocos2d写的游戏,我们应该通过什么方法去分析呢?全是些sub开头的函数,搜出的字符串也全是系 ...

搜api,搜字符串,找关键函数 上lldb!

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表