0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

反匯編的一些基本知識(shí)

芯片逆向 ? 來(lái)源:芯片逆向 ? 2024-01-19 09:37 ? 次閱讀

匯編的一些基本知識(shí)

在程序?qū)糜幸痪涿裕喝绻隳茏x懂匯編,一切程序?qū)δ銇?lái)說(shuō)就是開源。

在程序?qū)糜幸痪涿裕喝绻隳茏x懂匯編,一切程序?qū)δ銇?lái)說(shuō)就是開源。所以要抵達(dá)黑客層次,不熟練的掌握分析技巧那是不可能的。我們看看一些的工具和相關(guān)技巧,后續(xù)我們?cè)倏纯匆恍└呒?jí)方法該怎么用。

常用的工具一般需要執(zhí)行三個(gè)步驟:

1,加載要反匯編的二進(jìn)制文件;

2,從二進(jìn)制文件中找到所有機(jī)器指令;

3,將指令轉(zhuǎn)換為匯編語(yǔ)句;通常第2步是一個(gè)難點(diǎn),由于機(jī)器指令與通常的二進(jìn)制數(shù)值無(wú)異,因此很容易把不是指令的數(shù)值認(rèn)為是機(jī)器指令。為了盡可能降低步驟2的錯(cuò)誤,反匯編算法常采用兩種模式,分別是線性反匯編和遞歸反匯編。

線性反匯編其實(shí)就是從頭走到尾,將所有二進(jìn)制數(shù)值都認(rèn)為是機(jī)器指令,然后將其轉(zhuǎn)換為匯編語(yǔ)句,我們常用的Objdum就是如此。這當(dāng)然會(huì)產(chǎn)生問(wèn)題,很顯然不可能所有二進(jìn)制數(shù)值都是機(jī)器指令,因此這種做法容易將原本是數(shù)據(jù)的數(shù)值看做是指令。由此會(huì)帶來(lái)兩種錯(cuò)誤,一種是將數(shù)值轉(zhuǎn)換成無(wú)效機(jī)器指令,一種更糟糕,數(shù)值正好對(duì)應(yīng)了某條機(jī)器指令,于是給后面的分析帶來(lái)巨大的干擾.

接下來(lái)我們看看遞歸反匯編。它的基本思路是尋找程序的控制流,它首先從main等程序入口著手,然后先是線性,如果遇到j(luò)ump等指令,它就會(huì)跳到j(luò)ump對(duì)應(yīng)的地址繼續(xù)反匯編。這種情況也容易出問(wèn)題,因?yàn)槌绦虻目刂屏骱茈y追蹤,因?yàn)楹芏嗵D(zhuǎn)其實(shí)是隱性跳轉(zhuǎn),也就是這種跳轉(zhuǎn)不會(huì)在二進(jìn)制文件中給出具體地址,需要在運(yùn)行時(shí)才能確認(rèn)具體地址。

致芯科技可以對(duì)程序進(jìn)行解密后進(jìn)行反匯編,得到匯編代碼,我們是不能直接得到c語(yǔ)言的。一般只要懂匯編語(yǔ)言的工程師也懂C語(yǔ)言,那么就可以照著匯編語(yǔ)言寫成c語(yǔ)言。不過(guò)這個(gè)過(guò)程需要比較長(zhǎng)的時(shí)間和耐心去做。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3125

    瀏覽量

    42067
  • 反匯編
    +關(guān)注

    關(guān)注

    1

    文章

    29

    瀏覽量

    10518
  • 匯編代碼
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    7520

原文標(biāo)題:反匯編的一些基本知識(shí)

文章出處:【微信號(hào):zhixinkeji2015,微信公眾號(hào):芯片逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為什么要反匯編?反匯編文件的生成和解讀

    反匯編顧名思義就是匯編的逆過(guò)程,將二進(jìn)制文件反匯編匯編代碼。arm-linux-objdump是交叉編譯工具鏈里的個(gè)工具,專門用來(lái)
    發(fā)表于 08-02 10:25 ?6131次閱讀
    為什么要<b class='flag-5'>反匯編</b>?<b class='flag-5'>反匯編</b>文件的生成和解讀

    51單片機(jī)反匯編軟件推薦

    小弟最近看了個(gè)返回編的程序,用了網(wǎng)上的幾種反匯編軟件 感覺反的不怎么對(duì) 不知各位大神能否推薦可靠的反匯編軟件給小弟 謝謝了
    發(fā)表于 05-25 22:12

    反匯編中怎么學(xué)習(xí)反匯編算法?

    像那么簡(jiǎn)單。通常,指令與數(shù)據(jù)混雜在起,區(qū)分它們就顯得非常重要。反匯編可執(zhí)行文件:該文件必須符合可執(zhí)行文件的某種通用格式,如Windows所使用的可移植可執(zhí)行(Portable Executable
    發(fā)表于 06-26 16:06

    反匯編的原理是什么?為什么需要反匯編?

    反匯編的原理是什么?為什么需要反匯編?
    發(fā)表于 11-05 07:24

    變頻電源的一些主要的基本知識(shí)

    的基礎(chǔ)認(rèn)識(shí),你了解多少呢?今天為大家講講變頻電源的一些主要的基本知識(shí):1、變頻電源只會(huì)降壓,不能升壓;2、變頻電源對(duì)供電電源的質(zhì)量要求比較高;3、變頻電源工作的同時(shí)還是臺(tái)電磁×××;4、價(jià)格便...
    發(fā)表于 12-30 07:20

    51單片機(jī)反匯編軟件

    51單片機(jī)反匯編軟件:經(jīng)過(guò)單片機(jī)解密后得到了機(jī)器代碼后,往往需要多學(xué)習(xí)一些別人的編程經(jīng)驗(yàn)或是對(duì)程序進(jìn)行修改。在沒有源程序的情況下,反匯編目標(biāo)代碼為我們提供了
    發(fā)表于 10-12 07:55 ?741次下載
    51單片機(jī)<b class='flag-5'>反匯編</b>軟件

    PIC單片機(jī)反匯編

    PIC單片機(jī)反匯編器:PIC單片機(jī)是由美國(guó)微芯電子設(shè)計(jì)制造的,應(yīng)用在各個(gè)領(lǐng)域。這款PIC單片機(jī)的反匯編軟件,可以反匯編大部分PIC單片機(jī),使用界面友好。
    發(fā)表于 10-12 10:18 ?353次下載

    單片機(jī)反匯編工具包

    單片機(jī)反匯編工具包 單片機(jī)反匯編  單片機(jī)反匯編即寫入單片機(jī)的bin文件或是hex文件,經(jīng)過(guò)人工處理或是反匯編軟件處理成匯編語(yǔ)言。這些
    發(fā)表于 04-07 17:13 ?277次下載

    反匯編CLASS初級(jí)教程

    反匯編CLASS初級(jí)教程 闡述了從class角度用反匯編來(lái)分析資源文件格式并編寫插件,以及字體修改的過(guò)程,為了敘述方便,分為上下2章,前篇主要論述如何利用Class文件來(lái)分析資源文件的格式,后篇主要講述修改游戲字體的過(guò)程。
    發(fā)表于 01-21 18:46 ?46次下載

    SNMP協(xié)議的一些基本知識(shí)

    主要介紹了SNMP的協(xié)議的一些基本知識(shí),通過(guò)了解SNMP,可以對(duì)很多大系統(tǒng)進(jìn)行遠(yuǎn)程控制。
    發(fā)表于 11-10 10:54 ?0次下載

    HOLTEK單片機(jī)反匯編軟件

    HOLTEK單片機(jī)反匯編軟件
    發(fā)表于 12-13 14:02 ?39次下載

    PIC反匯編匯編程序和PIC

    PIC反匯編匯編程序和PIC前言1、PIC2、匯編語(yǔ)言和反匯編語(yǔ)言3、目標(biāo)流程前言由于一些
    發(fā)表于 11-16 16:21 ?20次下載
    PIC<b class='flag-5'>反匯編</b>(<b class='flag-5'>一</b>)<b class='flag-5'>匯編</b>程序和PIC

    【RT-Thread學(xué)習(xí)筆記】使用objdump反匯編

    如何使用objdump進(jìn)行反匯編
    的頭像 發(fā)表于 07-30 14:03 ?2520次閱讀
    【RT-Thread學(xué)習(xí)筆記】使用objdump<b class='flag-5'>反匯編</b>

    DCDC電路設(shè)計(jì)的一些基本知識(shí)

    最早的時(shí)候,我們都是自己搭建電源供電電路,現(xiàn)在已經(jīng)有很多集成芯片,DC-DC電路在電子產(chǎn)品中也是隨處可見。本文與大家分享一些DCDC電路設(shè)計(jì)的一些基本知識(shí)
    發(fā)表于 03-07 13:48 ?4120次閱讀

    西門子伺服驅(qū)動(dòng)器維修的一些基本知識(shí)

    西門子伺服驅(qū)動(dòng)器維修的一些基本知識(shí)
    的頭像 發(fā)表于 11-23 10:55 ?1469次閱讀