Hook中一些常用命令
Debugserve
root# debugserver *:1234 -a "ProcessName"
lldb
process connect connect://20.20.49.195:1234
查看是否加密
otool -l WeChat.app/WeChat | grep -B 2 crypt
导出头文件
class-dump --arch armv7 -H -A -S -o header WeChat.app/WeChat
TargetApp的Documents目录路径
root# cycript -p TargetApp
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
/#"file:///var/mobile/Containers/Data/Application/D41C4343-63AA-4BFF-904B-2146128611EE/Documents/"
lipo
// 拆分fat
lipo LoginSDK.a -thin armv7 -output arm/LoginSDK.a
// 合并iPhone模拟器和真机的静态类库,生成通用库
lipo -create -output UNIVERSAL.a DEVICE.a SIMULATOR.a
// 意思是:把"${CURRENTCONFIG_DEVICE_DIR}目录下的.a文件,和${CURRENTCONFIG_SIMULATOR_DIR}目录下的.a文件合并,
// 在${CREATING_UNIVERSAL_DIR}目录下,生成两个设备都通用的静态库,
例如:lipo -create -output xy.a x.a y.a
添加权限
chmod +x /usr/bin/debugserver
应用砸壳 1
ssh root@ip
ps -e
找到var/开头 进程
cycript -p 进程号
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]
cd 上面得到的路径
su mobile
DYLD_INSERT_LIBRARIES=/usr/bin/dumpdecrypted.dylib /path/to/executable(进程路径)
scp root@xxx.xxx.xxx.xxx:/path/to/XXX.decrypted /path/to/XXX.decrypted(复制出砸壳后的二进制文件)
应用砸壳 2
给app注入dylib后安装到非越狱手机上
-
应用砸壳
-
安装iOSOpenDev
-
创建dylib,编写程序
-
选择真机bulid
-
利用yololib把dylib注入到砸壳后的二进制文件中
./yololib WeChat.app/WeChat hook.dylib
-
将注入dylib的二进制文件cp到app(从AppStore下载的)中
-
利用AppResign或者codesign给app重签名
./AppResign WeChat.app WeChat.ipa
-
安装ipa
xcodebuild编译framework
xcodebuild -workspace FLEX.xcworkspace -scheme FLEX -configuration Release -arch arm64 BUILD_DIR=./
// iphoneos5.0下的编译脚本:
xcodebuild -project "UtilLib.xcodeproj" -configuration "Debug" -target "UtilLib" -sdk "iphoneos5.0" -arch "armv6 armv7" build RUN_CLANG_STATIC_ANALYZER=NO $(BUILD_DIR)="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
// iphonesimulator5.0下的编译脚本:
xcodebuild -project "UtilLib.xcodeproj" -configuration "Debug" -target "UtilLib" -sdk "iphonesimulator5.0" -arch "i386" build RUN_CLANG_STATIC_ANALYZER=NO $(BUILD_DIR)="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
参考:
xcodebuild命令简单使用
xcodebuild命令官方说明
IOS 项目配置--构建输出DIR
scp: ambiguous target
scp myfile.txt root@192.168.1.100:"/file\\ path\\ with\\ spaces/myfile.txt"
scp copy to external hard drive ambiguous target
其它
- 查看调用当前的模块:image lookup -a $lr
- 查看在hopper中的函数地址:image lookup -a 函数地址
- 下该类所有方法下断点:br set -r [CNAdPlayerView .*]
- 给某一个方法下断点:br set -n "[UIView initWithFrame:]"
- ASLR偏移量(LLDB): image list -o -f
- codesign -d --entitlements :app.entitlements 需要重签.app #生成原包的授权文件