如何從zImage中提取程序

在分析智能硬件的固件時(shí),時(shí)常會(huì)面對(duì)一些搭載了文件系統(tǒng)的。假設(shè)我們獲得了Linux kernel ARM boot executable?(little-endian)格式的zImage,怎樣提取出待分析的主程序呢?

第一類:

除有zImage外,還獲得了ext2/ext3文件系統(tǒng),且用010editor在ex2/ext3文件可以搜索到相關(guān)的關(guān)鍵字??蛇\(yùn)行Explore2fs提取ext2/ext2文件系統(tǒng)中的文件。

:Explore2fs無(wú)法在win7、win10運(yùn)行。可以考慮運(yùn)行在win XP。

第二類:

僅有zImage文件,此時(shí)可用binwalk提取程序。

binwalk -Me zImage


題外話

當(dāng)初從網(wǎng)上看到了此篇文章,演示怎樣解壓linux內(nèi)核

https://acassis.wordpress.com/2015/06/04/how-to-recover-and-decompress-a-linux-kernel-dumped-mtd-partition/

按照該方法操作了,仍然找不到主程序。

root@ubuntu:~/ctf/hw2#arm-linux-gnueabi-objdump-EL -b binary -D -m armv5t zImage | grep 8b1f? ?//搜索gzip頭部

??? 462c:????? 00088b1f???? andeq??? r8, r8, pc, lsl fp

??? 59d8:????? b548b1fc???? strblt????? fp, [r8, #-508] ; 0xfffffe04

?? 13078:????? fce28b1f????? stc2l 11, cr8, [r2], #124? ; 0x7c

?? 14b1c:????? 8b1f7159???? blhi 0x7f1088

?? 15aac:????? ae08b1f1???? mcrge??? 1, 0, fp, cr8, cr1, {7}

?? 34d9c:????? 138b1f85???? orrne????? r1, fp, #532??? ; 0x214

?? 43b3c:????? 72ef8b1f????? rscvc????? r8, pc, #31744?????? ; 0x7c00

?? 4dfa0:?????? 23db8b1f???? bicscs???? r8, fp, #31744 ; 0x7c00

?? 5cf34:?????? 788b1fa8???? stmvc???? fp, {r3, r5, r7, r8, r9, sl, fp, ip}

。。。。。。

root@ubuntu:~/ctf/hw2# dd if=zImage

of=out.gz bs=1 skip=17964? ? ?// 0x462c = 17964? ? ?

4131028+0 records in

4131028+0 records out

4131028 bytes (4.1 MB, 3.9 MiB) copied, 6.07096 s, 680 kB/s

root@ubuntu:~/ctf/hw2# ls

out.gz? to_attacker? versatile-pb.dtb? zImage

root@ubuntu:~/ctf/hw2#file out.gz

out.gz: gzip compressed data, max compression, from Unix

root@ubuntu:~/ctf/hw2#gunzip out.gz

gzip: out.gz: decompression OK, trailing garbage ignored

后來(lái)聯(lián)系上下文和相關(guān)背景知識(shí),明白了上述操作僅從zImage中獲取了解壓后的內(nèi)核,還需繼續(xù)提取才能獲得主程序。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容