首页
社区
课程
招聘
[原创] 还原shc编译的shell脚本
发表于: 2025-7-1 17:48 2890

[原创] 还原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,因此无论是否是第一次执行,调试器都可以调试到


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回