攻击目标叫什么名字

来源:互联网 发布:易语言砍价源码 编辑:程序博客网 时间:2024/06/11 16:02

叶孤城原创,转载须授权。


小白:叶城主,你要攻击的目标叫西门吹雪啊,你忘了?

叶孤城:闭嘴,我要攻击的目标是各种app里面的类!

小白:你为什么要知道类名?难道你要诅咒它不成?

叶孤城:知道类名可以发起攻击,比如我可以注入进去,让程序自动切换界面,甚至把它的机密数据拿回来……

小白:你这偷窥狂!

本文解决一个问题:定位目标类的类名。

定位类名,有两个办法,一个是classdump出头文件后再通过静态或动态的分析办法定位出类名,另一个办法是通过分析界面布局来定位类名。

小白:classdump个头?你能不能不要讲这么长的句子,都是什么来的?

花满楼:classdump是倚天剑,我后续再介绍。

小白:又是剑……

这里介绍分析界面布局并获取类名的办法。

使用的工具为Reveal。

小白:在哪里下载Reveal?

花满楼:不要问我这种问题啦。

(一)使用Reveal

先下载一个破解版本呗,比如1.6版本或1.5版本。

(1)拷贝libReveal.dylib到手机

在mac上运行Reveal后,菜单Help -> Show Reveal Library in Finder,再点击iOS Library,就可以找到libReveal.dylib。

拷贝到DynamicLibrary目录下:

scp libReveal.dylib root@192.168.2.57:/Library/MobileSubstrate/DynamicLibraries

小白:为什么要拷贝到DynamicLibraries目录?这个目录存在吗?

叶孤城:这个目录的动态库(也就是dylib后缀的文件),有机会让某些甚至是所有手机上的程序启动时都加载到,至于让哪些程序加载,则由plist文件决定。然后,只要你的手机成功越狱了,这个目录就是存在的。

小白:还好,我的手机是越狱了的,而且scp也可以使用……看来,你上次讲的“进入攻击范围”还是有点用的。

叶孤城:我向来注重实用,不像某些人只会讲一些无用的算法或所谓软件基础的东西。

小白:……你这算是指责陆小凤跟西门吹雪吗?

(2)拷贝libReveal.plist到手机

找一个plist文件来修改,或者直接写一个plist文件。

plist文件要指定让哪个应用启动时加载Reveal.dylib,比如:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>    <key>Filter</key>    <dict>        <key>Bundles</key>        <array>            <string>com.tencent.QQKSong</string>        </array>    </dict></dict></plist>

上面的plist内容,让“全民k歌”启动时,加载Reveal.dylib。

小白:如果不指定这个Filter呢,是不是所有的程序启动时都加载?

叶孤城:ios8之前的版本是这样的,但之后的版本都需要指定应用,这个应用就是你的攻击目标。所以,不管3724,你先加上这个Filter再说。

小白:3721,叶城主!还有,你为什么选择“全民k歌”这个app?难道你在里面有个马甲?

叶孤城:难道除了会如来神掌,我还是歌神传人,也要告诉你?

小白:等等,歌神,我怎么知道“全民k歌”的filter值是什么?

叶孤城:这里面的filter值就是boundleid,而于目标app的boundleid是多少,有很多办法可以查到,比如找到他的plist文件来查看,比如ps看进程信息,比如动态调试等等。你如果还是不明白,那就算了吧。

小白:你不是吧,能不能上点心?我可以加你的开发群再来细问吗?

叶孤城:可以,但我一般不回答。

小白:…….

拷贝libReveal.plist到手机:

scp libReveal.plist root@192.168.2.57:/Library/MobileSubstrate/DynamicLibraries

之后,在mac上再次启动Reveal就可以连接目标app,来分析ui类了。

比如,在手机上重启全民k歌,在mac上重启Reveal,然后连接全民k歌:
Reveal连接全民k歌

可以看到,全民k歌的一个页面是这样(注意看类名!):
全民k歌页面

(二)让全民k歌自动切换至歌手页面

现在做一个演示,通过Reveal定位到全民k歌的目标类,并让全民k歌启动后自动切换至歌手页面。

小白:哇,你是发起攻击了吗?

叶孤城:冷静,只是只让你看到希望而已。

首先通过Reveal,定位到底部导航条的所在的viewcontroller类:
导航类
也就是KSRootTabBarController

小白:什么叫viewcontroller类?

叶孤城:不要打岔,这种问题去问西门吹雪

小白:……

然后,通过查看classdump翻译到的代码结构,可以看到点击“我要唱”按钮,就是触发KSRootTabBarController::onClickTabBarItem函数。

小白:喂,怎么就dump到代码结构了?叶城主,你断片了哦!

叶孤城:怎么砸掉目标app的外壳,怎么翻译到代码结构,我后面再介绍,你不要叽叽喳喳的。

然后,就可以hook这个类了,让目标app自动跳转。

小白:你怎么知道就是这个函数切换至“我要唱”的?难道你有卧底?

叶孤城:我猜的!

小白:这么不专业的话你也说得出来!

叶孤城:专业?写程序就是玩积木,有什么专业好严肃的!

小白:……

叶孤城:其实,有两个办法,一是看名字来猜并反复尝试,两是通过动态调试来快速定位。

小白:何为动态调试?

叶孤城:就是动着调戏,我后面再介绍,你先不要流口水。

小白:我去。

最终,自动跳转的效果是这样的:

自动切换

小白:叶城主,我觉得你很敷衍啊,怎么拿到代码结构不说,代码结构也不说,怎么hook也不说,就只告诉我一个结果!

叶孤城:本次的目的是介绍通过Reveal定位目标类的类名,这个讲了就行,至于其它的,慢慢来,贱,不,剑要一招一招来练。


鸡汤时间

1.不经历风雨,怎么迎接暴风雨。

2.人生就是一个起落落落落落落落落的过程。

3.生活会让你苦上一阵子,等你适应之后,再让你苦上一辈子。

4.生活不止是眼前的苟且,还有明天的苟且和后天的苟且。

5.一觉醒来,是不是感觉离梦想又远了呢。

6.没有梦想,至少还可以做梦啊。

7.好好活下去,每天都有新打击。

8.加油,你是最差的。

9.世上无难事,只要肯放弃。

10.书山有路勤为径,怪你没有富贵命。


逆向开发,关联阅读

进入攻击范围


如果你对逆向开发有兴趣,那请关注我们的公众号,并在输入框中发送数字6,叶孤城会加你到专业的逆向开发群中。

欢迎关注我们

原创粉丝点击