小记隐藏在android app后的音频隐写 2018-12-15 08:40:10 Steven Xeldax 偶然间下了个android考古题来练手结果最后发现其实和reverse一点关系都没有,原原本本的音频隐写,顺便总结下音频隐写的思路。 题目地址(WooYun WhiteHat 2015 No Wall Puzzle) give me five ``` aHR0cDovL2ZpbGVtYW5hZ2VyZ28ueGVsZGF4LnRvcC94ZWxkYXhhZG1pbi9zaGFyZS9jbTZlUHBDUg== ``` 看androidmainfest和dex代码发现逻辑很简单,就只有一个activity并且功能为播放一段音乐。 ``` public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView((int) R.layout.activity_main); init(); this.mediaPlayer = new MediaPlayer(); this.iv = (ImageView) findViewById(R.id.iv1); } ```  没有找到突破口,唯一的关键就是那段音乐,所以感觉是一道音频隐写相关的。 由于之前看到过在音频里插了一段flag波形,所以下了个audacity来看看。  存在归正波形图转成二进制上位换为1,下位换为0 ``` 01110011111110111111101001010000111010101110010111111011000111001000110111111111111110011010100111101011011110001100000110011110 ``` 查看一共有128位,可转换为16进制,得到32位字符串 ``` 73 FB FA 50 EA E5 FB 1C 8D FF F9 A9 EB 78 C1 9E ``` ## 常见套路 MP3 隐写 > Mp3Stego LSB隐写 > Silenteye 波形 > audacity 频谱 > audacity 具体可以参考ctf wiki 写的很好 ``` https://ctf-wiki.github.io/ctf-wiki/misc/audio/introduction/#_8 ```