大佬教程收集整理的这篇文章主要介绍了用一点信息注释C二进制文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
简而言之,它在原始二进制文件中附加一个bash if-else,它检查第一个参数是否为“–version”(在这种情况下它会回显一些信息)或者不是(在这种情况下它只是将自身解码为文件“OriginalBinary”) “然后运行./originalBinary).
这显然不太理想:
>我现在有2份二进制文件(对于大型二进制文件可能有问题)和
>进程运行是由./originalBinary启动的,这对于不知道发生了什么的人来说很困惑
我想知道的是我是否可以做一些事情,比如用某种特殊的exec $0替换./originalBinary调用,我也可以告诉exec不要从头开始读取文件,但偏移量为100字符(或者开头的Bash位的长度).
另一个想法是让Bash脚本自己编辑,即用sed删除前21行,调用./ $0来调用自身,然后在./$0命令返回时追加if-else.然而,这似乎很脆弱(如果机器在调用返回之前崩溃了怎么办?).
最后,我得到的印象是,当二进制文件是共享资源时,这会失败,因为当它尝试加载库时,链接器会被beginnig中的bash东西搞糊涂:(
或者,你能建议任何其他方式来注释c二进制后构建吗?
我考虑使用所需信息准备一个目标文件,而不是将其链接到给定的二进制文件,但是这需要我以某种方式将ELF转换回进入它的目标文件,将我的目标文件添加到列表中,然后重新链接(我从here得到的印象是,这可以用objcopy完成,但我还没有设法让它工作).此外,这种方法的问题在于没有很好的方法来获取信息,比如使用“–version”调用二进制文件.
我想做什么不可能?我希望我能清楚地解释一下.
谢谢.
#!/bin/bash function PrinTinformation() { echo "varIoUs bits of information" } if [[ $# -eq 1 && "$1" == "--version" ]]; then PrinTinformation exit 0 else uudecode $0 ./originalBinary exit 0 fi begin 755 originalBinary M?T5,1@(!`0````````````(`/@`!````X`9```````!``````````'`1```` M`````````$``.``)`$``'@`;``8````%````0`````````!``$```````$`` M0```````^`$```````#X`0````````@``````````P````0````X`@`````` M`#@"0```````.`)````````<`````````!P``````````0`````````!```` M!0````````````````!``````````$```````*0*````````I`H````````` M`"````````$````&````\`T```````#P#6```````/`-8```````6`(````` M``"8`P``````````(````````@````8````@#@```````"`.8```````(`Y@ M``````#``0```````,`!````````"``````````$````!````%0"```````` M5`)```````!4`D```````$0`````````1``````````$`````````%#E=&0$ M````L`D```````"P"4```````+`)0```````-``````````T``````````0` M````````4>5T9`8````````````````````````````````````````````` M````````````"`````````!2Y71D!````/`-````````\`U@``````#P#6`` ...............// my uuencode'd binary here end
以上是大佬教程为你收集整理的用一点信息注释C二进制文件全部内容,希望文章能够帮你解决用一点信息注释C二进制文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。