如何反编译RPM包

Java WEB 应用打成 RPM 包进行安装和启动,针对这种应用,该如何进行代码审计呢?让人头大 QAQ

我们忽略 RPM 包的结构、构建过程,先说最终的结论。RPM 安装包中含有若干个可执行程序,在RPM包安装时,可执行程序需要存放的位置、启动时执行的命令等,都是通过 spec文件 进行声明的。所以,即使将 Java Web应用 打包成了RPM安装包,Java Web的可执行Jar包在RPM安装包中依然是以独立的Jar包形式存在。

了解了这个前提之后,就可以直接对 RPM 包进行反编译,提取其中的文件,这里我们使用 rpm2cpio命令,该命令用于将 rpm 软件包转换为 cpio 格式的文件。

1
2
3
4
5
$ mkdir -p /tmp/rpm-decompile
$ cp rpm-package.rpm /tmp/rpm-decompile/
$ cd /tmp/rpm-decompile
$ # 提取 RPM 安装包中的文件
$ rpm2cpio rpm-package.rpm | cpio -idmv

至此,已经完成了 RPM安装包 内 Java Web 应用的提取,之后通过 Jar包反编译工具 即可还原源代码或直接使用字节码分析工具,进行代码审计。

参考链接

进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。

owefsad wechat
进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。
0%