一、shell预习
shell预习代码:
vi 123.sh
i 进入修正
mkdir shell
cd shell
touch 123.txt
:x 保存退出 :wq 也行
//履行 sh文件
bash 123.sh
zsh 123.sh
source 123.sh //会进入文件夹
./123.sh //会报错 没有权限
chmod +x 123.sh //按权限 履行
二、Framwork注入
一般修正原始的程序,是使用代码注入的办法,注入代码就会选择使用FrameWork或许Dylib等三方库的办法注入。
Framwork注入
-
经过Xcode新建Framwork,将库安装进入APP包
-
经过
yololib注入Framwork库途径
。指令:$yololib(空格)MachO文件途径(空格)库途径 -
所有的Framwork加载都是由DYLD加载进入内存被履行的
-
注入成功的库途径会写入到MachO文件的
LC_LOAD_DYLIB
字段中
三、yololib东西
代码:
//! Project version number for Hook.
FOUNDATION_EXPORT double HookVersionNumber;
//! Project version string for Hook.
FOUNDATION_EXPORT const unsigned char HookVersionString[];
+(void)load
{
NSLog(@"\n\n\n\n\n\n\n\n");
}
Dylib注入
-
经过Xcode新建Dylib库(注意:Dylib属于MacOS所以需求修正属性)
-
增加Target依赖,让Xcode将自界说
Dylib
文件打包进入APP包。 -
使用
yololib
进行注入。
在/usr/local/bin 下配置yololib东西和环境
需求使用yololib
东西进行调用注入 :
在shell脚本中加入:
yololib "$TARGET_APP_PATH/$APP_BINARY" "Frameworks/libHankHook.dylib"
把libHankHook.dylib 途径写入到MachO文件的LC_LOAD_DYLIB
字段中,就完成代码注入。
四、dylib注入

class_addMethod办法
:
- 使用AddMethod办法,让原始办法能够被调用,不至于因为找不到SEL而溃散
class_replaceMethod办法
:
- 使用class_replaceMethod,直接给原始的办法替换IMP
method_setImplementation办法
:
- 使用method_setImplementation,直接重新赋值原始的新的IMP
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。