Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >手把手教你制作一款iOS越狱App,伪装微信位置

手把手教你制作一款iOS越狱App,伪装微信位置

作者头像
全栈程序员站长
发布于 2022-09-03 06:19:53
发布于 2022-09-03 06:19:53
2.9K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

说明

缘由

本文是我个人在对逆向工程强烈的兴趣驱使下,拜读《iOS应用逆向工程》,所实现的一个好玩的功能,与大家分享,也是对自己学习的一个简单总结。BTW iOS逆向论坛 iOSRe 是一个很好的iOS逆向交流社区。

所有文章中工具和代码都托管到GitHub,欢迎访问:项目地址:https://github.com/jackrex/FakeWeChatLoc

严重声明

本文所有纯属个人娱乐学习值用,相关技术仅用于学习交流,请勿用于非法目的,不得有其他任何商业用途!!!

概念

越狱的原理:

iOS系统越狱,其实说白了,和Android的Root类似,相当于对手机权限的提升,使得让你可以操纵之前你操纵不了的事物。

由于Objective-C 是面向对象的高级语言,iOS 采用的文件格式 Mach-O 包含了很多metadata 信息可以让我们使用 class-dump 还原其头文件,这个为iOS 的逆向有了很好的开端。

MobileSubstrate 是一个能够让iOS 开发方便hook的一个framework,MobileSubstrate由如下三部分组成:

MobileSubstrate 1. MobileHooker 利用iOS Runtime 动态替换函数,转发消息达到所谓的hook技术 2. MobileLoader 主要用来加载第三方动态库 即是tweak/*.dylib 3. Safe Mode 安全模式,防止第三方插件的Crash对主体App造成的影响

  • 由此可见 有了MobileSubstrate 作为基石,加上逆向工程,我们几乎可以完成我们想做的任何事情
iOS 目录层级结构

这种基于Unix 衍生的操作系统一般目录层级都有相通之初,不妨可以对比Android 以及 MacOS,会发现好多目录名是一致的,我么来挑一些简单讲解下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/bin binnary ,系统常用的基本二进制文件 例如 cd, ls, ps 等
/usr 包含大多用户工具库
/var variable 存放经常更改的东西,例如 logs,用户数据,/var/mobile/Applications 是纺织AppStore 下载的 App
/Applications 存放所有系统App,以及从Cydia下载的App路径
/Library  存放了系统App的数据,其中有一个/Library/MobileSubstrate 目录,MobileSubstrate 是一个hook 功能开发平台,其中内容如下图所示,我们所开发的插件都被放置到这个里面

/Library/MobileSubstrate 里面文件类型主要有 dylib,plist
dylib 是动态加载库,就是tweak
plist 配合dylib 使用的filter 文件,指定注入目标,及hook的目标
/System 存放iOS 各种系统framework
/User 指向 /var/mobile 即是我们一般用户的主目录 
iOS 程序类型
  • iOS 安装包格式
    1. ipa 苹果推出的iOS 专有安装包,一般从AppStore下载的包格式,安装路径/var/mobile/Applications,长按可删除
    2. deb 是属于Debain系(使用过debain linux 系统的都知道)特有的安装包,iOS 系统起源于Unix,所以兼容deb安装包,Cydia下载的App就是deb格式的,安装路径为到 /Applications ,长按不可删除,必须使用root 权限的命令行或者Cydia移除
    3. pxl (这种格式起源于Mac上的pkg,现在已经废弃)
  • iOS 安装包对比 其实各大软件包虽然格式不一样,诸如 .apk, .ipa .deb .app 等等,其实实质都是一个zip 将二进制和资源文件合理的规划罗列出来
    1. 包内容对比:

    Payload文件夹:里面包含了app使用的图片以及二进制文件等 iTunesArtwork:实际上是无后缀的png图片,在iTunes等上显示用 iTunesMetadata.plist记录购买者的信息,软件版本,售价等 com.apple.ZipMetadata.plist 是

Deb 结构其实是对Library Applications gzip 为 data.tar.gz里面 control 文件放到 control.tar.gz 中

  1. 权限: deb 安装到/Applications 下属于 root 用户组,所以可以读写权限和 一般的 .ipa mobile 用户不一样
  2. Deb 文件的安装方式就例如把本身自己文件路径完全拷贝到iOS 系统中
    • 其他iOS程序类型
  3. Dynamic Library 我们上面说的DynamicLibraries 就是放置动态库的地方
  4. Daemon 这个是后台运行程序,守护进程的程序,例如一直监听通话来电的进程 等等,这个就不多将了。

准备工作

硬件设备:
  • Mac
  • 已越狱的iDevice
辅助软件 :
Mac 需要的工具

在逆向工程中常见的 动态调试和静态分析使用的工具: – class-dump

class-dump 用来dump 出越狱后的App 所有头文件的工具

  • IDA IDA 是最好的反编译工具,其实简单的逆向只用IDA就可以完全搞定了
  • LLDB 动态调试的利器 配合 IDA 一动一静
  • Reveal 一个方便UI调试定位的Debug的工具,我们可以快速的对应某个App界面对应的是某个类
  • iFunBox 方便的文件管理辅助软件
iOS 需要使用的辅助开发工具
  • OpenSSH OpenSSH 可以让你的电脑远程登录你的手机
  • Cycript 非常强大的工具,可以让开发者在命令行下和应用交互,在运行时查看和修改应用
  • iFile 一个在手机方便管理文件系统的软件,犹如iFunbox ,Android 的Re管理器,可以方便的修改文件 安装Deb二进制文件
  • AppSync 同步App,让安装的Deb App icon 出现在桌面

逆向过程

静态分析

根据上述所理解的情况,由于我们是想在微信中模拟定位,所以我们把微信作为我们的分析对象。 使用 class-dump 导出微信的头文件, 虽然我们在class-dump 官网上看到 直接导出的方式 class-dump -H xxx -o output/ 但是我们直接解压ipa 中的wechat 里面 去dump 是不行,我们会发现在output 文件夹里只有 CDStructures.h文件,而且是空的

这个原因是因为在上传AppStore 之后,AppStore自动给所有的ipa 进行了加密处理,所以我们要dump之前需要对微信的二进制文件进行砸壳处理

给App砸壳

我们需要一个dumpdecrypted.dylib 这样一个工具对我们的App 砸壳 我们 先ssh 到我们的iOS手机上,我们把所有的程序都结束掉,单单开微信一个然后执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps -e //列出当前运行的进程

TODO 可以看到以/var/mobile/Containers/ 开头列出的进程就是WeChat进程,我们知道所有App的的沙盒路径在 /var/mobile/Containers/Bundle/Application/03B61840-2349-4559-B28E-0E2C6541F879/ 中,但是我们并不知道 03B61840-2349-4559-B28E-0E2C6541F879 到底是哪一个App ,如果我们去目录中一个一个找的话,就太不容易了

这时候 cycript 就派上用处了,执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 cycript -p WeChat 
 cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
#"file:///var/mobile/Containers/Data/Application/D41C4343-63AA-4BFF-904B-2146128611EE/Documents/"

这样我们就得到了微信Documents 目录,接下来使用scp 或者 ifunbox 吧拷贝到微信的Documents目录下 dumpdecrypted.dylib

开始砸壳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DYLD_INSERT_LIBRARIES=/path/to/dumpdecrypted.dylib /path/to/executable

当前目录下会生成WeChat.decrypted 这个就是砸过壳的WeChat,我们可以对它进行dump

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./class-dump -H WeChat.decrypted --arch armv7  -o output/

在当前目录下生成一个Output文件夹里面具有微信导出所有的头文件,包括第三方sdk等,我们把这些所有头文件放到一个空的Xcode 工程中方便查看。

我们根据直觉发现 Appdelegate 是微信的MircoMessengerAppDelegate,可以大概看到微信的项目结构等,其实逆向也是学习的一种方式

接着我们来想想我们要实现的功能,我们要改变我们的位置从而改变附近的人,我们大致可以猜想这个类应该交 Nearby Location 之类的,我们可以搜索对应的头文件。

我们发现搜Nearby 之后有这么多,到底哪一个是呢

其实我们除了排除法和一个一个推测之外,我们可以使用Reaveal 这个强大的工具帮我们定位

使用IDA静态分析

可以说class-dump 帮我们列出了整个header 文件,让我们对项目的整体结构有了一个大概的认识,但是对应具体.m 中的实现方案是哪一种,对于我们来说还是黑盒。这个时候我们就需要使用IDA强大的工具 进行分析。

打开IDA,选择new

我们把从Wechat.app 里面的WeChat 二进制拿出来,拖到上面IDA中, 由于我使用的是itouch 5 cpu 架构是armv7 所有用第一个,如果用错的话,则打断点得到的offset 是错误的,从而不能正常的debg

处理完成后如下图所示

其中我们可以轻易的看到 MicroMessengerAppDelegate 里面具体方法的实现,按空格键展开到视图模式

这里我们就可以看到.m中的实现了

动态调试

动态调试是我们没有源码的情况下,使用lldb 对代码的位置设断点进行调试,主要是算得相应代码的执行地址,以及如何Debug 获取我们想要的值。更具上述所说我们使用IDA的反编译结果

  1. iOS 开启debugserver 监听1234端口 debugserver *:1234 -a “WeChat”
  2. Mac端运行lldb 和iOS server保持连接 运行 lldb process connect connect://iOSIP:1234
  1. 获取ASLR的offset image list -o -f

offset 是 0xd000

  1. 获取断点地址 br s -a 0xd000+0x649D8 // 下断点
  2. 开始调试 ni po 等调试命令

直接启动一个App :debugserver -x backboard *:1234 /path/to/app/executable

iOS 工程目录

libsubstrate.dylib

制作Tweak

Tweak 是什么

Tweak 在单词中的意思是”微调”的意思,其实就是第三方动态链接库dylib Tweak 是基于MobileSubstrate 编写的,可以在运行时更改hook的App

了解 Theos

Theos 是一个越狱开发工具包,在《iOS应用逆向工程书中》也是介绍了这种方式,但是我个人更喜欢使用iOSOpenDev 的方式去创建项目(ps: 就和熟悉了git 命令行之后觉得用sourceTree 更直观),所以这里简单提及一下,感觉iOSOpenDev 像是把命令行式的NIC模板变成了可视化的,其实差不多都没有多难。

安装iOSOpenDev
  1. 安装很简单,大家下载 installer 进行安装
  2. 安装完成后,创建新项目会在template 中iOS出现 iOSOpenDev
  1. 在这里我们选择Logos Tweak,创建完成如下

其中有一个fakeloc.xm 的文件,这个就是我们要进行代码编写的地方。打开fakeloc.xm文件我们可以看到里面的代码使用 logos 完成的,对于logos 这种新的一门语言,大家不用担心,其基本的语法和Objc类似,有几个特定的语法需要特别注意下:

Logos 基本语法 : %hook 指定需要hook的类, 必须和 %end 结尾 %log 将函数信息写入syslog 进行打印信息 %orig 执行被hook住的函数,只能在 %hook 具体方法内执行

fakeloc.xm 对应的是 fakeloc.mm

我们在上述

在build Settings 上可以看到,底下有一栏是User-Define,这里是我们自定义的部分,在 iOSOpenDevDevice 的地方写上我们iOS 设备的ip地址 (局域网地址 如 192.168.1.103),前提是iOS 设备安装 OpenSSH

ssh 认证错误 iosod sshkey -h 192.168.1.109

制作App

最开始还以为创建越狱的App 都要用 Logos 语法去写,吓死宝宝了,其实iOS 越狱App的开发几乎和正常App 一模一样

首先我们还是创建一个工程,和普通创建工程一样,也可以用CocoaPods来管理你对于的第三方库

先创建一个新的项目和正常一样,按照如下方法配置后更改Build Settings。

增加Run Script,把control 从copy bundle resources 移除

项目整体结构

Build for Profiling 执行程序

App和Tweak通信交换数据

App如何加载Tweak

在生成了App 和 Tweak 之后,那我们App 中如何调用Tweak 呢? 答案是采用 dlopen

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 void *handle = dlopen(TWEAK_PATH, RTLD_LAZY); //TWEAK_PATH 是dylib 的地址
    if (handle) {
        NSLog(@"handle");
        if (0 != dlclose(handle)) {
            printf("dlclose failed! %s\n", dlerror());
        }else {

        }
    } else {
         NSLog(@"nohandle");
        printf("dlopen failed! %s\n", dlerror());
    }

然后动态的获取对应的自定义类

Class TweakBridge = NSClassFromString(@”TweakBridge”);

App如何和Tweak 交互传输数据

这个问题最开始我也百思不得其解,最后采用了最稳定,最为简单的方法实现,就是往同一个文件中读写数据,这个文件可以作为传输数据的媒介。 但是刚开始笔者把文件放到 /var/mobile/xxx.plist, tweak 总是读取不到值,纠其原因是因为tweak 和我们的App 权限不一样,所以需要找到一个可以公共写的地方,这个地方是 /var/mobile/Library/Preferences/ 所以我们App 和 Tweak 信息交互采用一个写,另一个读的方式达到传输的目的,如果你有更好更直接的方法,可以提出来大家一起讨论

所以最后的代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)setLocWithLat:(double)lat andLng:(double)lng {
    NSLog(@"set lat & lng is %f &&&& %f", lat, lng);
    Class TweakBridge = NSClassFromString(@"TweakBridge");
    void *handle = dlopen(TWEAK_PATH, RTLD_LAZY);
    if (handle) {
        NSLog(@"handle");
        TweakBridge = NSClassFromString(@"TweakBridge");
        NSDictionary *dict = @{@"lat":[NSNumber numberWithDouble:lat], @"long":[NSNumber numberWithDouble:lng]};
        BOOL isSuccess = [dict writeToFile:LOCATION_PATH atomically:YES];
        NSLog(@"isSuccess, %d", isSuccess);
        CLLocation *location = [[TweakBridge shareInstance] getCoreLocation];
        if (0 != dlclose(handle)) {
            printf("dlclose failed! %s\n", dlerror());
        }else {

        }
    } else {
         NSLog(@"nohandle");
        printf("dlopen failed! %s\n", dlerror());
    }
}

打包安装

整理目录结构

那我们如何将我们的Tweak 和 我们的App 结合在一起,让用户安装后就可以直接使用呢,鉴于我们上文说到的deb 格式,打包的方式和结构和zip 其实是一致的 iOS 系统可安装的包格式和结构我们在上文已经阐述过,现在是如何生成Deb 包

我们分别取出 dylib 和 app 的生成的目录

统一都放到一个单独的Package 目录下,最后的目录结构如下图

执行打包命令

我们按照Deb 排布的目录结构把所有的文件按照下图层级排放,然后使用 dpkg-deb 方式进行打包,注意打包的时候deb 中最好不要有 .DS_Store 文件,我写了如下的脚本去去除,同时生成Deb文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
find ./Package -name ".DS_Store" -depth -exec rm {} \;
dpkg-deb -Zgzip -b Package fakeLoc.deb

生成的安装包如下,然后我们scp 到设备中

我们使用iFunbox 把生成好的fakeLoc .deb 拖到根目录下,然后在手机上打开iFile,点击fakeLoc.deb 安装程序,安装完之后我们把AppSync 重新安装一遍重启手机,然后就能打开我们的App了,同时发现长按我们的App 和系统应用, Cydia 等一样,是不可以卸载的,应 为我们是安装到了/Applications 下面,卸载可以使用命令行删除,或者使用Cydia。

安装完成,之后重启设备就行

安装验证

打开App 让我们输入精度和纬度,然后执行,最后打开微信附近的人看看,是不是附近的人发生了改变,如果做的更好,精度纬度在地图上选取,当让我们的核心功能就讲解到这里为止了,我们简单的测试结果如下:

我们可以在 地图选址器 选择不同的位置,进行测试

  1. 首先我们先输入北京的坐标
  1. 然后打开微信附件的人

可以看到大部分人都是北京的

  1. 我们在重新输入一个地址,比如广州,然后在打开微信

成功模拟了微信附近的人

发布App

这可不向发布到AppStore那样,首先你需要一个托管源,如果不想自己搭建则可以采用 thebigboss.org/hosting-repository-cydia/submit-your-app

填写相关信息,这些就不再叙述了。 如果你的App被拒,你就邮件和回邮件的人沟通(一般是管理员 optimo),对方挺Nice的,你只要按照他们说的要求改,坚持自己正确的原则,一般是没有问题的~

总结

本文抛砖引玉,希望你对iOS越狱有一个初步的理解,能够完成自己的任意App,开发出更好玩的Tweak,比如微信抢红包的插件是不是就看似也不难实现了呢,本示例工程都托管在Github上,其中fakeloc 是 dylib 即tweak TestFakeTweak是app 工程,HackAppTool 我们上述文章描述需要用的第三方工具

项目地址:https://github.com/jackrex/FakeWeChatLoc

常见问题

  1. 安装软件后桌面没有出现软件 解决方案:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
重新安装下AppSync 并重启SpringBoard
  1. iOS6 系统Crash 解决方案:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
由于iOS7之后引入一些新的类库等,在iOS6设备上的兼容性一般,所以在工程的framework 中把 require 改为 option
  1. iOS 越狱后忘记了root 密码 解决方案 :
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root密码文件存放地方:/etc/master.passwd
用iFile的文本编辑功能打开master.passwd,更改之前记得权限
你会找到类似这样的一行字符——root:UlD3amElwHEpc:0:0::0:0:System
UlD3amElwHEpc就是加密过的密码
把它更替为ab3z4hnHA5WdU,这是对应的密码就是abc123。
保存,重启。
有了密码abc123你就可以进一步修改成其它的密码了

参考

  1. 《iOS应用逆向工程》
  2. http://iosopendev.com/
  3. http://iphonedevwiki.net/
  4. http://security.ios-wiki.com/

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139853.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
入门 IOS 逆向从我的经历说起
在这里以讲故事的形式分享一下我踏入信息安全这条路的一些经历吧,希望能帮到一些人,正文开始:
信安之路
2018/12/06
2.2K1
iPhone手机越狱-逆向砸壳-代码注入
目前13以上系统还没有完美越狱的方案,可以临时使用checkra1n方案对手机进行越狱:
周希
2020/10/19
2.1K0
iPhone手机越狱-逆向砸壳-代码注入
移动App入侵与逆向破解技术-iOS篇
如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪、注入等实用的破解技术,另外,通过“入侵”,将帮助您理解如何规避常见的安全漏洞,文章大纲: 简单介绍ios二进制文件结构与入侵的原理 介绍入侵常用的工具和方法,包括pc端和手机端 讲解黑客技术中的静态分析和动态分析法 通过一个简单的实例,来介绍如何综合运用砸壳、寻找注入点、lldb远程调试、追踪、反汇编技术来进行黑客实战 讲解越狱破解补丁和不需越狱的破解补丁制作方法和差别 ---- 黑客的素养 敏锐的嗅觉 有时候通过一个函数名,一个类名,就能大
腾讯Bugly
2018/03/23
6.1K0
移动App入侵与逆向破解技术-iOS篇
iOS逆向(8)-Monkey、Logos
https://juejin.im/post/5cc0983a6fb9a031ed20bd1d”
iOSSir
2019/06/14
2K0
iOS逆向(8)-Monkey、Logos
iOS逆向入门实践 — 逆向微信,伪装定位(二)
还是跟之前的步骤一致,创建工程,然后配置 Makefile。注意创建工程时名字只能包含数字跟字母。
全栈程序员站长
2022/09/05
1.4K0
iOS逆向工程之App脱壳
本篇博客以微信为例,给微信脱壳。"砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解密的过程。未砸壳的App是无法在Class-dump、Hopper等工具中使用的。所以我们要将App进行砸壳处理。在Android开发中也存在App加壳的处理,比如什么360加固了,其实就是给App加一层壳。 本篇博客我们就以WeChat(微信)为例,从AppStore上下载微信并安装,然后使用dumpdecrypted工具(当然
lizelu
2018/01/11
2.5K0
iOS逆向工程之App脱壳
iOS逆向工程之Theos
如果你对iOS逆向工程有所了解,那么你对Tweak并不陌生。那么由Tweak我们又会引出Theos, 那么什么是Theos呢,简单一句话,Theos是一个越狱开发工具包,Theos是越狱开发工具的首先,因为其最大的特点就是简单。大道至简,Theos的下载安装、编译发布都比较简单,越狱开发中另一个常用的工具是iOSOpenDev,因为本篇的主题是Theos,所以对iOSOpenDev不做过多赘述。本篇博客的主题是Thoes的安装及其使用。 一、Theos的配置与安装 Theos的配置与安装算是比较简单的,按照
lizelu
2018/01/11
1.7K0
iOS逆向工程之Theos
iOS逆向工程工具集
本篇文章是我在学习逆向工程时整理的逆向工程工具集 只作为记录使用 并不是详细的教程 阅读本篇教程需要你有一定逆向工程知识
100001509164
2022/01/20
1K0
iOS tweak 集成CocoaAsyncSocket(建连、断开、重连、心跳、通用请求)【应用场景:微信机器人】
我们可以在设备的/Library/MobileSubstrate/DynamicLibraries目录下查看手机上存在着的所有tweak。这个目录下除dylib外还存在着plist与bundle两种格式的文件,plist文件是用来标识该tweak的作用范围,而bundle是tweak所用到的资源文件。
公众号iOS逆向
2021/03/08
1.1K0
iOS tweak 集成CocoaAsyncSocket(建连、断开、重连、心跳、通用请求)【应用场景:微信机器人】
使用Theos做一个简单的Mobile Substrate Tweak
Mobile Substrate是Cydia的作者Jay Freeman (@saurik)的另外一个牛X的作品,也叫Cydia Substrate,它的主要功能是hook某个App,修改代码比如替换其中方法的实现,Cydia上的tweak都是基于Mobile Substrate实现的。目前支持iOS和Android平台。
JoeyBlue
2021/09/07
1.1K0
不懂汇编,如何逆向(iOS)
其实这个是非必要项, 自己手动砸壳需要已越狱的手机. 想手动砸壳可以参考这篇文章.
Locker
2018/08/01
1.7K0
不懂汇编,如何逆向(iOS)
ios逆向笔记
监测工具、反汇编工具(disassembler)、调试工具(debugger),以及开发工具
tea9
2023/03/17
8740
iOS 逆向工具:逆向做的好,码农下班早丨音视频工具
App 逆向工程是做竞品分析的常用方法,常言道『逆向做的好,码农下班早』,懂的都懂。这里我们对 iOS 逆向做一下简单介绍,这里面会涉及如下工具:
关键帧
2022/06/13
1.2K0
iOS 逆向工具:逆向做的好,码农下班早丨音视频工具
从微信扔骰子看iOS应用安全与逆向分析
在之前《免越狱调试与分析黑盒iOS应用》以及前几篇文章中已经介绍了如何开始分析iOS应用,不过都是基于非越狱的机器,其本意是为了能够在自己的主力设备中进行简单的分析和调试。但是执着于免越狱其实在很多情况下需要额外的工作,如果想要在iOS上做进一步研究的话,完全的访问权限是很有必要的。
evilpan
2023/02/12
2.1K0
从微信扔骰子看iOS应用安全与逆向分析
iOS逆向(4)-代码注入,非越狱窃取微信密码
https://juejin.im/post/5c7e72cd6fb9a049fc044519”
iOSSir
2019/06/14
2.4K0
iOS逆向(4)-代码注入,非越狱窃取微信密码
iOS逆向实战与工具使用(微信添加好友自动确认)
iOS逆向实战与工具使用(微信添加好友自动确认) 原文链接 源码地址 WeChatPlugin-iOS Mac OS 版微信小助手(远程控制、消息防撤回、自动回复、微信多开) 一、前言 本篇主要实现在微信上自动添加好友,从而熟悉 iOS 逆向分析的过程。 ---- 二、 工具 2.1 MacBook 软件 theos 制作 Tweak 的工具 hopper disassembler 用于静态分析 usbmuxd 端口转发,可以让我们通过usb连接手机进行ssh、lldb调试等。主要使用python-
用户1941540
2018/05/11
1.9K0
【Dev Club分享】iOS黑客技术大揭秘
Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 本期,我们邀请了腾讯 CDG iOS 开发工程师“何兆林”为大家分享《iOS黑客技术大揭秘》。 分享内容简介: 在黑客的世界里,没有坚不可破的防护系统,也没有无往不胜、所向披靡的入侵利器,有时候看似简单的问题,破解起来也许花上好几天、好几个月,有时候看似很 low 的工具往往能解决大问题;我们以实现微信自动抢红包为引子,逐步展开 iOS 黑客入侵常用的几种武器,并
腾讯Bugly
2018/03/23
2.2K0
【Dev Club分享】iOS黑客技术大揭秘
Make WeChat Great Again
导语: 关闭朋友圈有一年多了,突然有一天微信的策略变了,在关闭朋友圈的同时也不让别人查看自己的朋友圈了。有妹子表示看不到我朋友圈很不爽,于是我决定对微信进行一番改造!初步实现效果: 1. 关闭『发现』
MelonTeam
2018/01/04
2.6K1
Make WeChat Great Again
ios逆向工具MonkeyDev简介
MonkeyDev简介 虽然是米国的苹果开发的的的我操作系统系统,但是要论越狱iPhone和逆向分析来说,那国内远胜于米国了,可能是国内很多相关的灰色产业链吧。在之前,我们想动态调试一个没有源码的应用程序,通常是要借助于THEOS,自己操作LLVM来动态连接到应用程序,然后再使用LLVM的调试命令,整个的过程是非常耗时和繁琐的。 不过在17年的时候,iOS逆向后起之秀AloneMonkey对这些常用的工具进行了一些整合,弄了一个极为方便的逆向调试平台MonkeyDev,这个平台集成了常用的库,工具,并且还可
xiangzhihong
2018/04/02
2.5K0
iOS逆向工具之Cydia(iOS)软件介绍
我之前的工具介绍中,也有OpenSSH的介绍. 文章地址: 汇编逆向工具集(二) --> OpenSSH
conanma
2021/11/04
1.3K0
推荐阅读
相关推荐
入门 IOS 逆向从我的经历说起
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验