
逆向
文章平均质量分 73
Poison老师
写了十多年代码,也创业了多次,从底层到应用层
展开
-
ios动态库注入把越狱手机上自制的动态库安装到普通手机上
文章目录查看依赖库执行命令查看程序依赖的动态库名字用machoview查看安装insert_dylib查看依赖库先进入app包所在目录执行命令查看程序依赖的动态库名字otool -L 可执行程序名例如:得到5个动态库otool -L testCrackPwdtestCrackPwd: /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current versi原创 2022-04-25 14:29:11 · 8019 阅读 · 0 评论 -
ios代码混淆-字符串加密的优点和其他破解方法
程序运行效果这个例子是一个输入密码9527就会登录,否则显示"密码错误,重新输入"代码使用明文字符串的缺点oc代码下面代码是点击登录按钮以后执行判断.- (IBAction)btn1Click:(id)sender { if ([self.tf.text isEqualToString:@"9527"]){ self.label1.text = @"请输入密码"; VC1 *vc = [[VC1 alloc]init]; [self.nav原创 2022-04-15 10:27:19 · 1713 阅读 · 0 评论 -
ios手动代码混淆函数和变量名基本原理和注意事项教程(含demo)
文章目录混淆函数名原理代码例子没混淆的函数名注意事项替换变量名时要把set方法替换自定义的init开头方法代码混淆会会报错,不能混淆系统方法和类名不能混淆xib和storyboard中的变量和方法名不能混淆class-dump导出混淆后的头文件,验证函数和变量已经被混淆demo下载地址混淆函数名原理代码混淆替换函数名的主要原理是用宏定义#define来替换代码里的函数名或者变量民代码例子没混淆的函数名ViewController.h文件#import <UIKit/UIKit.h>@原创 2022-04-09 17:48:24 · 1915 阅读 · 0 评论 -
ios逆向tweak中使用MSHookIvar获取原有成员变量和使用自创成员变量的代替方法
文章目录MSHookIvar的作用获取类中原有的成员变量,不可以获取自己创建的成员变量格式如下注意:不可以获取到自己在tweak里创建的成员变量代替方法在hook中使用自创的成员变量本文是我研究了2天最后曲线救国,用文件内的全局变量代替hook代码中自创的成员变量的方法.MSHookIvar只能获取app包中原来就有的成员变量,不能获取自创的成员变量MSHookIvar的作用获取类中原有的成员变量,不可以获取自己创建的成员变量格式如下MSHookIvar<类型>(self,"_成员变量名原创 2022-03-23 17:10:42 · 4285 阅读 · 0 评论 -
把unc0ver.ipa重签名后安装到手机上实现越狱2023年4月15日更新
文章目录生成embedded.mobileprovision证书文件生成新的ipa包使用ios app signer重签名前提,需要自己拥有开发者证书才能重签名uncover.ipa实现越狱使用爱思助手一键越狱以后总提示正在"生成安装包",后来我去了uncover的官网,.下载了ipa包,把uncover.ipa用爱思助手安装到手机上,提示缺少appsync补丁,我试了一下不行.第二种方法提示要安装AltServer,我安装上了,但是提示我所在的team设备安装数已经达到最大.之后有看了一下unco原创 2022-03-22 14:54:14 · 12973 阅读 · 0 评论 -
ios重签名工具ios-app-signer的使用
文章目录下载安装获取embedded.mobileprovision文件制作app包下载安装现在github上下载ios-app-signer下载以后release模式编译一下,然后在product里面show in finder找到iOS App Signer ,然后运行如下图:获取embedded.mobileprovision文件方法是:在xcode里面编译一下,在product里面找到app包的 embedded.mobileprovision ,然后复制进来.具体细节查看我写的这篇文原创 2022-03-21 16:42:15 · 8553 阅读 · 1 评论 -
mac m1使用免费的hopper demo版本和machoView破解修改iphone上的app
先看下破解之前的程序,密码输入错误点击按钮不能进入,只有输入9527才能登录成功如下图,hopper中找到这个tbz跳转的代码使用debugserver给app在这3个地址下断点:计算偏移量(lldb) image list -o -f |grep testCrackPwd[ 0] 0x0000000004374000 /private/var/containers/Bundle/Application/277D073A-C808-4D4B-9A91-5FB238E744FA/testCra原创 2022-03-21 15:07:49 · 6160 阅读 · 0 评论 -
ios手动重签名在非越狱手机上安装自己破解的app
文章目录获取证书方法1:通过登录自己的苹果开发者账号网站获取证书(不推荐)方法2:通过xcode获取证书(推荐,简单)获取证书方法1:通过登录自己的苹果开发者账号网站获取证书(不推荐)建立一个profile,如下图,点击Profiles的加号+然后选择证书类型,这里我选择开发证书 ios App Development 开发证书然后再 App ID里面手动输入*星号,然后点击下面弹出的选项,代表匹配所有app选择弹出的.*选项,然后continue然后选择自己的mac电脑,因为我的付原创 2022-03-21 14:58:51 · 6851 阅读 · 0 评论 -
arm64用debugserver和lldb和hopper调试oc方法
因为普通的oc方法会编译成c++方法,例如下面的test1::会改成objc_msgSend,[vc test1:arg1 :arg2];objc_msgSend(vc,@selector(test1::),arg1,arg2)objc_msgSend的参数:参数1是调用的控制器参数2是方法名参数3是test1函数参数1参数4是test1函数参数2所以在lldb调试方法的时候,寄存器x0,x1表示参数1,参数2.内容如下po $x0. //打印是调用的控制器x/s $x1 //原创 2022-03-11 17:35:38 · 2605 阅读 · 0 评论 -
arm64汇编sp fp寄存器叶子函数非叶子函数的栈平衡
文章目录sp 栈顶指针寄存器fp 栈底指针寄存器 (x29)arm64没有push 和 pop操作栈开辟的空间是16的倍数叶子函数的栈平衡非叶子函数的汇编操作栈平衡sp 栈顶指针寄存器这个跟win32的esp一样.始终指向栈顶的地址.编译器可能用sp-偏移量来表示要读写栈的地址fp 栈底指针寄存器 (x29)这个跟 win32的ebp一样,用来指向当前函数的栈底.编译器优惠有时候会用 fp+偏移量 来表示要读写栈的地址,arm64没有push 和 pop操作栈在arm64汇编中没有win32汇编原创 2022-03-10 16:49:09 · 3146 阅读 · 0 评论 -
arm64汇编中orr 和 mov的交替使用
文章目录orr作用是按位或mov的作用orr代替mov使用方法反汇编中,把给某个寄存器赋值用orr 代替movorr作用是按位或按照二进制位来或运算每个位规则如下:1或0 =10或0 = 01或1 =11或任何数都是10或任何数都是任何数mov的作用把右边的值传送到左边寄存器里 mov w8,#0x1f //把1f传入w8orr代替mov使用方法注意下面2条指令作用一样,都是给32位的寄存器w8的赋值成0x1Forr w8,wzr,#0x1fmov w8,#0x1forr是原创 2022-03-10 09:46:48 · 2763 阅读 · 0 评论 -
arm64汇编wzr和xzr零寄存器和在ios中的调用
wzr是32位的零寄存器,用于给int清零xzr是64位的零寄存器,用于给long清零汇编函数在.h文件中的声明:void fn1(int *a,int *b);oc文件中的调用 int a = 11; long b = 12; fn1(&a, &b); NSLog(@"a=%d,b=%ld",a,b);汇编函数再.s文件中的定义.text.global _fn1//wzr是32位的零寄存器,用于给int清零//xzr是64位的零寄存器,原创 2022-03-08 17:51:34 · 6217 阅读 · 0 评论 -
arm64汇编str和stur和stp指令在ios中调用
str指令作用str r0,[r1] str作用是把左边r0寄存器里的值,存入到 右边[r1]内存地址中str x0,[x1,#0x10] //x->[x1+0x10]#str 在函数中的作用oc代码调用int fn1(int a,int *b); int a = 1; int b = 10; int result = fn1(a,&b);_fn1:str x0,[x1]//把fn1(参数1,参数2) x0里是参数1,把x0的值存入到 x1(参数2的指原创 2022-03-08 17:23:02 · 7336 阅读 · 1 评论 -
使用lldb和hopper计算函数地址给运行中的app添加断点
文章目录使用hopper找到你要下断点的macho-o文件里的函数地址的方法通过越狱手机连接上mac,并且进入lldb查看app所有段落和偏移量: -f是完整路径 -o是偏移量在lldb里通过计算后的内存地址设置断点原理讲解:hopper使用hopper找到你要下断点的macho-o文件里的函数地址的方法例如,我通过theos tweek已经在BaseMsgContentViewController控制器里,把所有的方法都添加了打印信息.的TextDidChanged方法下hook了打印的方法下面原创 2022-02-25 16:22:06 · 1734 阅读 · 0 评论 -
ios lldb调试指令汇总(持续更新)
文章目录1.给函数设置断点 breakpoint2.调试指定动态库里的函数 br set -s3. 查看断点列表和序号: br list4. 删除断点 br delete5. 断点失效 br disable6. 断点生效 br enable7. 帮助 help8. 表达式 expression9.函数调用栈 thread backtrace10. 直接执行函数的返回 thread return10. 查看变量源代码级别的调试11.继续 thread continue 相当于xcode的F910.原创 2022-02-24 10:00:54 · 2771 阅读 · 0 评论 -
ios 让debugserver可以调试任意app
文章目录修改debugserver签名修改debugserver签名先从越狱手机上用ifunbox复制 Device\Developer\usr\bin目录下的debugserver 到mac上,然后终端进入mac下的文件目录使用ldid修改签名修改签名可以参考这篇文章ios使用ldid给mach-o文件签名SpringBoard的权限突破沙盒先把签名导出来ldid -e debugserver > debugserver.entitlements双击打开生成的文件 debugser原创 2022-02-21 17:29:47 · 2452 阅读 · 0 评论 -
ios使用theos tweak logify.pl自动hook .h头文件中所有的方法
文章目录配置theos环境变量手动在tweek里打印一个函数的信息使用logify.pl自动生成一个.h文件中的所有函数的打印信息配置theos环境变量theos文件夹下的bin,下有一个logify.pl把这个 theos/bin添加到系统环境变量里,就可以在任意位置使用这个pl文件执行命令open ~/.zshrc添加一行:export PATH="theos的路径/theos/bin:$PATH"然后让环境变量生效source ~/.zshrc手动在tweek里打印一个函数的原创 2022-02-17 15:32:44 · 1307 阅读 · 0 评论 -
ios使用ldid给mach-o文件签名SpringBoard的权限突破沙盒
文章目录使用ldid导出mach-o文件的签名文件.entitlements文件导出SpringBoard的签名文件把SpringBoard的签名文件的权限签名给自己的app中使用ldid导出mach-o文件的签名文件.entitlements文件把xcode 的product 里的app,右键显示包内容,找到里面的mach-o文件.然后用终端打开当前目录,执行下列命令一个>大于号是覆盖,把ldid -e的权限覆盖到右边文件里, 2个大于号>是追加.这里用覆盖一个>ldid -e 文原创 2022-02-17 11:15:23 · 1502 阅读 · 0 评论 -
ios逆向theos tweak删除广告视图的常用思路技巧
文章目录重写 initWithFrame方法,返回nil重写视图属性的set方法 让set方法什么都不执行把数据源模型数组从数据源中删除出去.如果在越狱手机里写一个tweek插件,例如要删除广告视图等,可以用下面方法技巧重写 initWithFrame方法,返回nil把 - (instancetype)initWithFrame:(CGRect)frame方法直接重写成 返回nil,如下- (instancetype)initWithFrame:(CGRect)frame{ return n原创 2022-02-15 15:43:29 · 800 阅读 · 0 评论 -
ios逆向工具 theos tweak多文件使用方法
先在xcode里面写好.h .m的类文件.方便查看格式是否正确在Tweak.x 或者Tweak.xm调用的时候 #import .h头文件.在Makefile 文件中 找到项目名_FILES 后面把所有.m文件 用空格添加进来.可以直接写 具体的.m文件名,也可以用*.m 代表所有.m文件,但是目录层级必须写清楚.Tweak.x 和 Tweak.xm 需要单独写,不能写成 *.x 或者 *.xm否则编译报错.例如下图中,Tweak.x在src目录下 ,Student.h和 Student.m在sr原创 2022-02-11 17:25:06 · 1115 阅读 · 0 评论 -
ios逆向工具tweak logos语法总结
文章目录%hook%hook 后面的类名,是要替换的类名, 里面的 self, 就是这个类self 要使用的方法,如果报错找不到方法名,则要在前面声明这个类有这个方法,语法如下:%new%hook%hook 类名 方法1..方法2..%end%hook 后面的类名,是要替换的类名, 里面的 self, 就是这个类self 要使用的方法,如果报错找不到方法名,则要在前面声明这个类有这个方法,语法如下:@interface 类名 声明的方法@end例如make时候报错如下:Twea原创 2022-02-11 14:14:59 · 1554 阅读 · 0 评论 -
ios逆向工具theos tweak图片资源加载的方法
文章目录建立文件夹加载UIImage调用宏最终简单调用方法建立文件夹首先要在Makefile所在文件夹,新建一个layout 文件夹.这个文件夹里面的目录结构会上传到手机根目录下.加载UIImage在代码里加载图片要从文件位置加载 [UIImage imageWithContentsOfFile:"文件绝对路径")];不能使用 [UIImage imageNamed:""],因为这个是从 asset里面加载调用宏因为一般都把图片放在手机的Library/PreferenceLoader/原创 2022-02-10 14:54:12 · 854 阅读 · 0 评论 -
ios逆向工具theos tweak make编译错误集合
文章目录self无法识别报错链接错误找不到UIKit里的定义的变量或者类self无法识别报错在%hook 后面跟着的类名,就是self,使用self的时候的时候会报错找不到方法.例如:Tweak.x:19:25: error: no visible @interface for 'FindFriendEntryViewController' declares the selector 'numberOfSectionsInTableView:' if ( section == [s原创 2022-02-09 16:17:15 · 1058 阅读 · 0 评论 -
clutch ios脱壳工具安装和使用教程
文章目录下载和安装clutch下载安装到越狱手机上ssh登录到手机上-i指令查看已经安装的app导出文件下载和安装clutch下载github下载地址下载好以后,只要Clutch-2.0.4 这个文件直接把他的改名为clutch,注意c要用小写,因为在ssh输入命令区分大小写,这样在手机上输入命令的时候可以不输入"-2.0.4",直接输入小写的clutch就行了安装到越狱手机上把改名后的可执行文件Clutch复制到连接到mac电脑上的越狱手机里的 目录usr\bin 下,因为在bin目录下就可以原创 2022-02-04 18:51:47 · 3895 阅读 · 0 评论 -
ios逆向工具theos安装和使用tweak替换和卸载
安装brew/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"使用brew安装 ldidbrew install ldid添加环境变量 open ~/.bash_profile在文件里添加一行,新建环境变量THEOS,让这个变量等于你硬盘下存储theos的文件路径,例如我存到下面的路径里,PATH是把theos安装文件夹下的bin当做默认可执行目录,在任意位置都能执行t原创 2022-02-04 18:39:25 · 5303 阅读 · 0 评论 -
ios脱壳工具frida使用教程和各种踩坑总结(app store可用脱壳)
@[TOP]越狱手机上安装frida打开手机上的cydia,添加软件源,地址:build.frida.re然后搜索:Frida点击安装更新brew用国内的源:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"会提示你选择一个下载源,我选择了1,中科大安装pythonbrew install python这里提示下面错误:Error: python@3.9:原创 2022-02-03 17:44:17 · 11342 阅读 · 1 评论 -
ios脱壳工具dumpdecrypted安装和使用教程
文章目录安装方法查看app的路径脱壳安装方法github下载地址:dumpdecrypted下载好以后里面只有3个文件d dumpdecrypted.cMakefileREADME进入到这个目录下面,然后在终端执行指令 make ,会自动执行Makefile的内容make然后会生成2个文件:dumpdecrypted.dylibdumpdecrypted.o然后用ifunbox链接越狱手机,把dumpdecrypted.dylib文件复制到var/root文件夹下然后ssh登原创 2022-02-02 15:32:17 · 5075 阅读 · 0 评论 -
ios app硬脱壳之前查看加密方式的方法
文章目录查看mach-o文件的加密方式命令行方法查看:machoview查看查看mach-o文件的加密方式首先打开找到mach-o文件.可以从我写的这篇文章中找到导出mach-o文件的方法:快速在越狱iphone手机下定位app安装包并且导出的方法命令行方法查看:终端先进入到mach-o所在文件件,然后执行:otool -l 文件名 | grep cryptotool -l是查看所有的load command信息,然后 | grep crypt是查找crypt的信息例如网易云的:oto原创 2022-01-29 17:30:40 · 1453 阅读 · 0 评论 -
快速在越狱iphone手机下定位app安装包并且导出的方法
首先登录自己的越狱手机:我用的是usb链接本地方式如下需要安装python脚本,没安装的可以直接用ssh登录:python tcprelay.py -t 22:20000ssh -p 20000 root@localhost利用adv-cmds工具 -ps -A 命令列出所有进程名字确保你的手机安装 adv-cmds 工具安装相关工具的文章请看我写的这篇文章先不要启动任何app输入 -ps -A第一次输入,会看到所有的进程名字,cmd+F,搜索var,如下图,发现找不到任何结果查找v原创 2022-01-29 16:21:50 · 3997 阅读 · 0 评论 -
machoview github原版下载后编译错误解决方法,附能编译的源码下载
文章目录github源码地址首先下载好以后打开文件machoview.xcodeproj 编译错误:unable to find sdk ‘macosx10.9’不能找到10.9的macosx sdk解决方法:target ->Build Settings->Base SDK把macosx 10.9 (SDK not found) 改成macos如下图:错误:‘string’ file not foundBuild Settings 里搜索c++找到 C++ Stan原创 2022-01-29 10:27:57 · 1388 阅读 · 0 评论 -
ios逆向工具Hopper Disassembler的基本使用功能整理(持续更新)
目录打开hopper后拖拽app包里的mach-o文件后,让你选择框架,默认就是下面的点击上面的4种视图,切换汇编代码和伪代码找出是哪里调用了当前代码.右键选择一个函数,选择References to selector show.可以找出都有哪里调用了当前位置打开hopper后拖拽app包里的mach-o文件后,让你选择框架,默认就是下面的点击上面的4种视图,切换汇编代码和伪代码找出是哪里调用了当前代码.右键选择一个函数,选择References to selector show.可以找出都有哪里原创 2021-12-17 15:17:13 · 14412 阅读 · 3 评论 -
ios逆向工具Class-dump的安装和导出.h文件的教程
目录安装方法获取app文件class-dump命令用法把信息输出到文件目录官网地址[class-dump-3.5.dmg的下载地址](http://stevenygard.com/download/class-dump-3.5.dmg)安装方法双击安装dmg文件以后把里面的class-dump文件,复制到 /usr/local/bin/ 目录下,这样才能在终端的命令行里面输入class-dump命令.获取app文件如果是你自己生成的app,你已经有了app源代码可以直接在xcode里面的pr原创 2021-12-17 15:03:22 · 3107 阅读 · 1 评论 -
ios逆向视图查看器Reveal安装和使用教程
官网地址:官网地址官网下载地址原创 2021-12-16 16:55:44 · 1740 阅读 · 0 评论 -
cycript脚本文件函数和变量的封装和导入调用详解
用scp 指令把cy文件重新赋值到手机上的cycript0.9文件夹中例如下面用usb的20000端口登录的 scp -P 20000 /Volumes/SN750\ 1T/越狱相关 代码/cycript文件类库TdwTool封装/TdwTool.cy root@localhost:/usr/lib/cycript0.9/TdwTool.cy...原创 2021-12-15 15:43:28 · 2062 阅读 · 0 评论 -
cycript使用mjcript.cy总结(持续更新)
目录使用方法:把文件复制到手机上包含文件MJFrontVCMJRectMakeMJSubviewsMJKeyWinMJRootVcmj为cycript脚本语言封装的库.里面有很多便捷操作.mjcript github地址使用方法:把文件复制到手机上先把这个文件mjcript.cy 复制到手机上,手机目录是:usrusr/lib/cycript0.9复制到这个文件夹里可以使用scp 命令复制,或者用iFunBox复制进去,我选择后者包含文件首先先进入一个app的进程cycript -p原创 2021-12-11 16:19:34 · 1822 阅读 · 0 评论 -
cycript常用语法指令
目录打开进程获取 Application对象根控制器#井号键+地址var 定义变量ObjectiveC.classes打开进程cycript -p 进程名字获取 Application对象 [UIApplication sharedApplication]直接输入UIApp等价于上面UIApp根控制器UIApp.keyWindow.rootViewController#井号键+地址#加地址,直接执行这个对象例如下面,我输入UIApp.keyWindow.rootViewCont原创 2021-12-10 18:06:54 · 1056 阅读 · 0 评论 -
越狱手机上ssh 创建中文名文件的设置方法
目录在手机的根目录上添加输入配置文件.inputrc方法1:方法2:在手机的根目录上添加输入配置文件.inputrc方法1:通过iFunBox连接手机,然后在本地电脑上新建文件,起名字叫 .inputrc里面内容是:set convert-meta offset output-meta onset meta-flag onset input-meta on把这个文件,通过iFunBox复制到手机根目录上,然后再重新登录ssh,就可以在ssh给手机创建中文文件名了.如下图:方法2:原创 2021-12-10 16:48:13 · 1862 阅读 · 0 评论 -
越狱iPhone手机使用openSSH wifi和usb连接mac电脑再免密码登录再用shell脚本执行教程
目录wifi连接手机登录手机root用户默认密码修改openSSH的默认密码exit 退出root进入根目录查看文件usb连接手机下载usbmuxd查看ssh默认端口是否是22使用python文件把手机的22端口映射到本地的端口用本地的端口登录手机通过rsa建立公钥私钥,进行免密码登录,这个跟git上的免密码操作是一样的先在cydia上面下载openSSH软件wifi连接手机登录手机root用户先把手机和电脑放在同一个wifi地址下.查看手机ip地址在iphone的 设置->wifi->原创 2021-12-10 13:22:16 · 5071 阅读 · 0 评论 -
swift判断手机越狱代码和文件常用路径
手机越狱以后会在下面路径里创建文件,把所有目录放到一个数组里面,然后判断是否存在,找到一个存在就判断手机已经越狱了import UIKitclass ViewController: UIViewController { @IBOutlet weak var labelIsBreak: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional se原创 2021-12-09 12:02:15 · 1171 阅读 · 0 评论 -
ios 逆向开发需要安装的软件总结(持续更新)
这里写自定义目录标题Apple File Conduit "2"iFunBoxAppSync UnifiediFile打开越狱ios系统里面打开cydia->搜索:输入下面软件名字Apple File Conduit “2”这个是手机上的文件管理软件,可以查看私有文件文件系统,例如var文件夹iFunBox在mac电脑上安装的软件,配合上面的 Apple File Conduit “2” 可以在mac电脑上查看手机里面的var private等文件夹如果手机上没有安装Apple Fil原创 2021-12-09 11:59:55 · 775 阅读 · 0 评论