-
-
[原创] 还原shc编译的shell脚本
-
发表于: 2025-7-1 17:48 2890
-
最近在逆向一款android上的改机工具,发现它使用到了shc,将核心的改机逻辑隐藏了起来,没有搜索到相关的教程,分享一下“解密”的过程
shc 一款开源的工具,可以借助c语言将shell编译为可执行程序
逻辑

shc处理后的逻辑会通过execvp两次执行可执行文件,在第二次中,才会解密为原始的shell字符串,再执行此shell
既然知道了在execvp执行后,第二次可以获取到第一次设置的环境变量后,才会解密,那么就可以直接在第二次的`memcpy()`位置下断点,打印出原始的shell文本,具体如下:
1. 使用lldb或者gdb,对shc编译后的executable进行动态调试,我是使用ndk提供的lldb调试的
android:
mac:
mac:
因为execvp会将目标的进程替换为现在运行的进程,执行execvp后保持相同的pid,因此无论是否是第一次执行,调试器都可以调试到
赞赏
他的文章
- [原创] 还原shc编译的shell脚本 2891
- [原创] hook objc_msgSend方法以获取OC方法入参 52885
- 探究FishHook底层原理实现 66129
赞赏
雪币:
留言: