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


其它

  1. 查看调用当前的模块:image lookup -a $lr
  2. 查看在hopper中的函数地址:image lookup -a 函数地址
  3. 下该类所有方法下断点:br set -r [CNAdPlayerView .*]
  4. 给某一个方法下断点:br set -n “[UIView initWithFrame:]”
  5. ASLR偏移量(LLDB): image list -o -f
  6. codesign -d –entitlements :app.entitlements 需要重签.app #生成原包的授权文件

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据