教你如何反编译app,拿到加密方式

教你如何反编译app,拿到加密方式

大家知道app 有安卓和ios

安卓是apk 现在基本上apk都是经过加密的 想动态脱壳没一定的技术是搞不定的

IOS是ipa 今天我主要讲的是这个

准备好反编译设备

1.一套越狱的ios手机 我的设备是iphone6 ios8.3 已越狱

2.一个mac系统 可以是vmware上的mac 黑苹果 或者直接用自己的mac电脑 我为了方便就用了黑苹果(如何搞黑苹果可以看我之前发表的博客)

给大家看下我的环境吧:

image
image

准备反编译环境

1. 越狱手机上

1.1 Cydia上面安装 OpenSSH 安装成功后 可以remote到你的手机 默认的密码是 alpine

1.2 github上下载clutch然后放置在手机的 bin目录下(可以使用Itools工具)

image

解释一下这个工具是干什么的:如果app是直接从appstore下载的话 默认会被加密的 那么你用反编译工具IDA(下面会说到)的话就不行。得用这个工具解密生成一个ipa

2. mac机器上面准备好 LLDB Remote Debug 环境 (lldb是什么具体可以搜索Google)

2.1 配置Debug Server

从 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ DeviceSupport/7.0.3\ /DeveloperDiskImage.dmg 获得debugserver 然后复制到桌面(中间的那个 DeviceSupport 可以根据具体路径替换)

image

2.2 光有这个不行 还得弄下签名

创建一个 文件叫 Entitlements.plist 然后用 xcode打开进行编辑写入

image

输入命令 codesign -s - --entitlements entitlements.plist -f debugserver 之后 把这个 debugserver 传回 手机设备 的 /usr/bin/debugserver (可以使用Itools工具)

image

3. windows系统上安装反编译利器IDA工具,大家可以百度搜破解版

image

反编译实验开始

在mac系统上 ssh连接 手机设备

image

如果你的app是从appstore上下载的那么请先用clutch解密 【我这里就举了一个Discord程序的例子】

1 用clutch -i 命理 找到你安装的app的编号

image

2 用clutch -d 2命令进行解密操作

image

由于某头条我是从越狱版本Itools上下载的 本身就已经解密过了 所以不需要上面的操作

我直接用Itools导出ipa包

image

打开 Fiddler 进行抓包分析(如何配置手机代理请自行百度了)

打开app的注册页面

image

这里有一个获取验证码的图片的请求

image

请求的url里面有一个sign参数 一看就知道这个是md5加密

接下来我们就是要拿到这个md5是如何生成的

用IDA打开ipa包(第一次打开需要花点时间)

按SHift+F12打开 搜索String关键字 "sign"

image

双击进入

image

继续双击进入 Function

image

按 F5

image

这里我们可以得知 加密的类叫 BFCrytor 里面有一个 MD5方法

在Function列表搜索一下 果然有

image

好了 已经成功找到了 加密md5的类和方法名称了

接下来开始最重要的步骤了 要根据 类和方法名称找到 程序运行的 内存地址 然后对这个内存地址进行下断点

1.把ipa包copy到mac系统里面 然后 用 Class-Dump****XApp -H -A -S -o****headers/

dump出来的头文件里面标记了 IMP 的地址 输入到 header文件夹

在该文件夹搜索刚刚我们找到的类名称 BFCryptor 用Xcode打开

image
image

记录下这个内存地址 0x0000000100241e30

lldb 挂载

用 px -a 命令找到 app 运行的 id

image

然后用命令执行挂载 执行完后 发现app被卡主了 一切都静止了

image

再打开另外一个bash 执行本地命令

lldb> platform select remote-ios> process connect connect://iOSIP:8888

过一会儿就会看到下面这个就代表挂载成功

image

获取 ASLR 偏移量

image

那么 断线的内存地址 的算法 就是 基址 + 偏移量

也就是md5 方法的内存地址 = 0x00000000000fc000 + 0x0000000100241e30

用下面的命令进行下断点

image

断点下完后 执行 c 命令 让 app 跑起来 触发一个网络请求 就会发现 断点停下来的

image

用 po 命令打印参数 发现 arg3就是我们md5加密前的数据

image

接下来 就写一个模拟请求实验一下

image
image

请求成功了!!!!!

总结:

这篇文章给大家讲了 如何配置反编译环境

反编译一个app 拿到加密方式的一般步骤是怎样的。

md5的方式还是比较简单的,用rsa算法加密(例如国寿app,12306app等)的就比较难。但是方法都是一样的。

祝大家好运!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容