美文网首页
Hook中一些常用命令

Hook中一些常用命令

作者: 萌小菜 | 来源:发表于2017-03-24 19:29 被阅读179次

    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 #生成原包的授权文件

    相关文章

      网友评论

          本文标题:Hook中一些常用命令

          本文链接:https://www.haomeiwen.com/subject/yeafottx.html