logog.pl学习笔记

这两天学习大佬的文章https://www.jianshu.com/p/569f86f6c41e
基本有了成效,有些坑做点笔记
主要在sh脚本做了点改动
代码如下:

将xm和文件app包放在同一个目录,运行本脚步进行注入
path=`ls | grep *.app | head -1`
tweak=`ls | grep *.xm | head -1`
temp='tempssxxxx'
name=${path%.app}

app_executable_backup_path="./${path}/Contents/MacOS/${name}_backup"
#codesign --remove-signature ${name}

/opt/theos/bin/logos.pl "./${tweak}" > "./${temp}.mm"

clang -shared -undefined dynamic_lookup -o libThunder666.dylib "./${temp}.mm"

clang -shared -undefined dynamic_lookup -o "./${path}/Contents/MacOS/lib.dylib" "./${temp}.mm"
#/Users/lxmacmini/Downloads/SayHi-master/optool install -c load -p @executable_path/lib.dylib -t "./${path}/Contents/MacOS/${name}"

#optool install -c load -p @executable_path/lib.dylib -t "./${path}/Contents/MacOS/${name}"

#//先复制一次
cp "./${path}/Contents/MacOS/${name}" "$app_executable_backup_path"
# 使用insert_dylib会先生成一个 _patched的要手动替换,传三个参数就好了,把原来的备份起来
insert_dylib --all-yes @executable_path/lib.dylib "$app_executable_backup_path" "./${path}/Contents/MacOS/${name}"

原理就是,
1.编写Logos保存,
2.使用logos.pl 编译转换成.mm
3.使用clang编译成dylib,并放在machO文件同目录下
4.使用optool(这次我用这个不行)或者insert_dylib注入动态库
(使用insert_dylib会生成一个_patched需要手动替换,用脚本里面的就好了)
5.enjoy
ps:自己的项目,没用到签名

你可能感兴趣的:(logog.pl学习笔记)