久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4968|回復(fù): 26
打印 上一主題 下一主題
收起左側(cè)

怎么吧hex文件轉(zhuǎn)換成c文件啊

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1084404 發(fā)表于 2023-6-20 22:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2023-6-21 07:08 | 只看該作者
轉(zhuǎn)不了,別想了。等什么時候?qū)崿F(xiàn)sh1t2rice轉(zhuǎn)換再說吧。
回復(fù)

使用道具 舉報

板凳
ID:1034262 發(fā)表于 2023-6-21 09:47 | 只看該作者
問問人工智能
回復(fù)

使用道具 舉報

地板
ID:57657 發(fā)表于 2023-6-21 10:22 | 只看該作者
hex反匯編再反C,網(wǎng)上搜一下有沒有大神會搞,人工翻譯沒有免費的。
回復(fù)

使用道具 舉報

5#
ID:656419 發(fā)表于 2023-6-21 13:40 | 只看該作者
呃   一般別人的HEX才需要反成C啊,,,,大兄弟你干了啥,,,
回復(fù)

使用道具 舉報

6#
ID:517951 發(fā)表于 2023-6-21 14:05 | 只看該作者
hex文件在不知道是51還是ARM或是其他什么單片機(jī)型號下, 你是沒辦法還原為c的. 以后人工智能高度發(fā)達(dá)了,或許有可能.  
回復(fù)

使用道具 舉報

7#
ID:142059 發(fā)表于 2023-6-21 15:09 來自觸屏版 | 只看該作者
npn 發(fā)表于 2023-6-21 10:22
hex反匯編再反C,網(wǎng)上搜一下有沒有大神會搞,人工翻譯沒有免費的。

看碟下菜,起步2W米
回復(fù)

使用道具 舉報

8#
ID:1059013 發(fā)表于 2023-6-21 15:15 | 只看該作者
這么多年了,沒有聽說有成功轉(zhuǎn)換的
回復(fù)

使用道具 舉報

9#
ID:1069337 發(fā)表于 2023-6-21 15:34 | 只看該作者
目前應(yīng)該還沒有這個功能
回復(fù)

使用道具 舉報

10#
ID:1085375 發(fā)表于 2023-6-21 16:10 | 只看該作者
1、你應(yīng)該是嵌入式開發(fā)中已經(jīng)編譯成.hex的文件吧,這個hex文件基本上可以理解為windows中的.exe,你要是反編譯匯編。

2、還能看出點門道,返回C,我在微軟的操作系統(tǒng)下從來沒比較滿意的做成功過。

3、何況你還是在單片機(jī)中。
回復(fù)

使用道具 舉報

11#
ID:155507 發(fā)表于 2023-6-21 19:15 | 只看該作者
要將51單片機(jī)的hex文件轉(zhuǎn)換為C文件,需要先將hex文件進(jìn)行反匯編,然后再進(jìn)行反匯編代碼到C代碼的轉(zhuǎn)換。以下是一種常見的方法:

1.使用8051反匯編器:使用適合的8051反匯編工具,如單片機(jī)智能反編譯軟件,IDA Pro、Ghidra等,將hex文件進(jìn)行反匯編。Ghidra是一個廣泛使用的開源工具,它可以將8051的機(jī)器碼反匯編為匯編代碼。

2.反匯編:使用適當(dāng)?shù)拿罨蜻x項,將hex文件輸入反匯編工具。這將生成反匯編代碼,其中包含了8051芯片的匯編指令和程序的結(jié)構(gòu)。

3.分析反匯編代碼:仔細(xì)分析反匯編代碼,了解程序的結(jié)構(gòu)、邏輯和功能。這是將反匯編代碼轉(zhuǎn)換為C代碼的基礎(chǔ)。

4.根據(jù)匯編代碼編寫C代碼:根據(jù)分析的反匯編代碼,手動編寫對應(yīng)的C代碼。這需要熟悉8051匯編語言和C語言,并理解程序的功能和算法。

5.重建程序結(jié)構(gòu):根據(jù)反匯編代碼中的分支、循環(huán)和函數(shù)調(diào)用等信息,重建程序的結(jié)構(gòu)。這包括編寫相應(yīng)的條件語句、循環(huán)語句和函數(shù)。

6.重新命名變量和函數(shù):根據(jù)反匯編代碼的上下文和功能,為變量和函數(shù)命名,使代碼更具可讀性和可維護(hù)性。

請注意,將匯編代碼轉(zhuǎn)換為等效的C代碼是一項復(fù)雜的任務(wù),因為在編譯過程中會丟失某些信息,如原始變量名、類型信息等。因此,轉(zhuǎn)換后的C代碼可能不會完全還原原始代碼,并且可能需要進(jìn)一步的手動調(diào)整和優(yōu)化。

同時,請確保你有權(quán)進(jìn)行這樣的操作或者你在合法和道德的范圍內(nèi)進(jìn)行轉(zhuǎn)換。注意,根據(jù)您的具體情況,可能還需要使用其他反匯編工具或轉(zhuǎn)換器,具體取決于您的要求和可用的工具。

回復(fù)

使用道具 舉報

12#
ID:712097 發(fā)表于 2023-6-23 09:36 | 只看該作者
這個真不行,就算強(qiáng)行轉(zhuǎn)換成功也不保證能夠使用。
回復(fù)

使用道具 舉報

13#
無效樓層,該帖已經(jīng)被刪除
14#
ID:798322 發(fā)表于 2023-6-24 21:13 | 只看該作者
生成機(jī)器的十六進(jìn)制語言,本質(zhì)上是C語言到匯編到機(jī)器語言,反過來就需要反過來編譯,需要理解每個轉(zhuǎn)換步驟的語言,需要研究底層的機(jī)器語言,好像沒有軟件可以反過來。
回復(fù)

使用道具 舉報

15#
ID:688692 發(fā)表于 2023-6-25 10:09 | 只看該作者
信息的可逆性?
我很多個寫法做出來編譯后可能得到的HEX是一樣的,你怎么可能反編譯回去呢?
比如同一個C文件我把變量名改改,編譯出來的結(jié)果不會改變,所以反編譯是不可能的,只能梳理程序執(zhí)行的流程和結(jié)構(gòu),手動重寫C,這比正向開發(fā)難多了。
回復(fù)

使用道具 舉報

16#
ID:155507 發(fā)表于 2023-6-25 11:31 | 只看該作者

人工智能 給出來的答案。

將MCS-51 8051的hex文件轉(zhuǎn)換成C文件

:0B002300EF1FAC0670011E4C70F622AF
:10000300C2A07F507EC3120023D2A07F507EC312B2
:04001300002380EC5A
:03000000020017E4
:0C001700787FE4F6D8FD75810702000335
:00000001FF

反匯編 編譯
;標(biāo)號==============指令================================地址===機(jī)器碼=======
;==========================================================================
Q0000:             LJMP  Q0017                        ;0000   02 00 17
;==========================================================================
Q0003:             CLR   P2.0                         ;0003   C2 A0
                   MOV   R7,#50H                      ;0005   7F 50
                   MOV   R6,#0C3H                     ;0007   7E C3
                   LCALL Q0023                        ;0009   12 00 23
                   SETB  P2.0                         ;000C   D2 A0
                   MOV   R7,#50H                      ;000E   7F 50
                   MOV   R6,#0C3H                     ;0010   7E C3
                   LCALL Q0023                        ;0012   12 00 23
                   SJMP  Q0003                        ;0015   80 EC
Q0017:             MOV   R0,#7FH                      ;0017   78 7F
                   CLR   A                            ;0019   E4
Q001A:             MOV   @R0,A                        ;001A   F6
                   DJNZ  R0,Q001A                     ;001B   D8 FD
                   MOV   SP,#07H                      ;001D   75 81 07
                   LJMP  Q0003                        ;0020   02 00 03
;==========================================================================
Q0023:             MOV   A,R7                         ;0023   EF
                   DEC   R7                           ;0024   1F
                   MOV   R4,06H                       ;0025   AC 06
                   JNZ   Q002A                        ;0027   70 01
                   DEC   R6                           ;0029   1E
Q002A:             ORL   A,R4                         ;002A   4C
                   JNZ   Q0023                        ;002B   70 F6
                   RET                                ;002D   22
;==========================================================================

要將MCS-51 8051的HEX文件轉(zhuǎn)換為C文件,你可以按照以下步驟進(jìn)行手動轉(zhuǎn)換:

1.創(chuàng)建一個新的C文件(例如example.c)來保存轉(zhuǎn)換后的代碼。

2.打開HEX文件,并查看每一行的指令和地址。

3.解析hex文件:打開hex文件,讀取每一行的數(shù)據(jù)。每一行通常以冒號(:)開頭,后面是一系列的16進(jìn)制數(shù)字,代表指令、數(shù)據(jù)和校驗等信息。

4.將每一行指令轉(zhuǎn)換為等效的C語句,并按地址順序?qū)⑺鼈儗懭氲絜xample.c文件中。

以下是一個示例轉(zhuǎn)換的過程:

#include <8051.h> // 根據(jù)你的8051型號和編譯器選擇正確的頭文件

void main() {
    Q0000:
        // LJMP  Q0017 (地址:0000,機(jī)器碼:02 00 17)
        goto Q0017;

    Q0003:
        // CLR   P2.0 (地址:0003,機(jī)器碼:C2 A0)
        P2_0 = 0;

        // MOV   R7,#50H (地址:0005,機(jī)器碼:7F 50)
        R7 = 0x50;

        // MOV   R6,#0C3H (地址:0007,機(jī)器碼:7E C3)
        R6 = 0xC3;

        // LCALL Q0023 (地址:0009,機(jī)器碼:12 00 23)
        Q0023();

        // SETB  P2.0 (地址:000C,機(jī)器碼:D2 A0)
        P2_0 = 1;

        // MOV   R7,#50H (地址:000E,機(jī)器碼:7F 50)
        R7 = 0x50;

        // MOV   R6,#0C3H (地址:0010,機(jī)器碼:7E C3)
        R6 = 0xC3;

        // LCALL Q0023 (地址:0012,機(jī)器碼:12 00 23)
        Q0023();

        // SJMP  Q0003 (地址:0015,機(jī)器碼:80 EC)
        goto Q0003;

    Q0017:
        // MOV   R0,#7FH (地址:0017,機(jī)器碼:78 7F)
        R0 = 0x7F;

        // CLR   A (地址:0019,機(jī)器碼:E4)
        A = 0;

    Q001A:
        // MOV   @R0,A (地址:001A,機(jī)器碼:F6)
        *R0 = A;

        // DJNZ  R0,Q001A (地址:001B,機(jī)器碼:D8 FD)
        if (--R0 != 0) {
            goto Q001A;
        }

        // MOV   SP,#07H (地址:001D,機(jī)器碼:75 81 07)
        SP = 0x07;

        // LJMP  Q0003 (地址:0020,機(jī)器碼:02 00 03)
        goto Q0003;
}

void Q0023() {
    // MOV   A,R7 (地址:0023,機(jī)器碼:EF)
    A = R7;

    // DEC   R7 (地址:0024,機(jī)器碼:1F)
    R7--;

    // MOV   R4,06H (地址:0025,機(jī)器碼:AC 06)
    R4 = 0x06;

    // JNZ   Q002A (地址:0027,機(jī)器碼:70 01)
    if (R7 != 0) {
        goto Q002A;
    }

    // DEC   R6 (地址:0029,機(jī)器碼:1E)
    R6--;

Q002A:
    // ORL   A,R4 (地址:002A,機(jī)器碼:4C)
    A |= R4;

    // JNZ   Q0023 (地址:002B,機(jī)器碼:70 F6)
    if (A != 0) {
        goto Q0023;
    }

    // RET (地址:002D,機(jī)器碼:22)
    return;
}
注意,上述代碼只是根據(jù)你提供的HEX文件進(jìn)行的大致轉(zhuǎn)換,具體轉(zhuǎn)換的結(jié)果可能因8051芯片型號、編譯器和編程環(huán)境的不同而有所不同。在實際轉(zhuǎn)換過程中,你可能需要根據(jù)你的具體情況進(jìn)行調(diào)整和優(yōu)化。同時,根據(jù)HEX文件提供的信息,你需要手動添加初始化和其他邏輯來完整地重現(xiàn)原始程序的功能。



原本的程序。
/**************************************************************************************
*                              LED閃爍實驗                                                                                                  *
實現(xiàn)現(xiàn)象:下載程序后D1指示燈閃爍
注意事項:無                                                                                                                                                                  
***************************************************************************************/

#include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器
typedef unsigned int u16;          //對數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;


sbit led=P2^0;                 //將單片機(jī)的P2.0端口定義為led

/*******************************************************************************
* 函 數(shù) 名         : delay
* 函數(shù)功能                   : 延時函數(shù),i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
        while(i--);       
}

/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{
        while(1)
        {
                led=0;
                delay(50000); //大約延時450ms
                led=1;
                delay(50000); //大約延時450ms       
        }               
}





回復(fù)

使用道具 舉報

17#
ID:77589 發(fā)表于 2023-6-26 14:22 | 只看該作者
HEX到匯編是可行的,再到C,哈哈!還不如知道功能了,重寫!!!!
回復(fù)

使用道具 舉報

18#
ID:486153 發(fā)表于 2023-6-26 14:40 | 只看該作者
不好實現(xiàn),應(yīng)該轉(zhuǎn)不了
回復(fù)

使用道具 舉報

19#
ID:362692 發(fā)表于 2023-6-26 15:22 | 只看該作者
轉(zhuǎn)換不了,所采用的原理不一樣,格式不一樣。
回復(fù)

使用道具 舉報

20#
ID:1065432 發(fā)表于 2023-6-26 20:08 | 只看該作者
根據(jù)匯編重寫C還有的一說吧。直接轉(zhuǎn)夠嗆
回復(fù)

使用道具 舉報

21#
ID:1086115 發(fā)表于 2023-6-27 09:55 | 只看該作者
目前沒有這個能力
回復(fù)

使用道具 舉報

22#
ID:1086306 發(fā)表于 2023-6-29 08:28 | 只看該作者
這個就算是能轉(zhuǎn)換,確定格式能用嗎?
回復(fù)

使用道具 舉報

23#
ID:146782 發(fā)表于 2023-6-29 11:16 | 只看該作者
轉(zhuǎn)不了的
回復(fù)

使用道具 舉報

24#
ID:143767 發(fā)表于 2023-6-29 11:55 | 只看該作者
如果能夠反編譯成功,那人人都是盜版高手
回復(fù)

使用道具 舉報

25#
ID:382454 發(fā)表于 2023-6-29 11:56 | 只看該作者
反C,就象OD一樣,把EXE變成匯編語言。
回復(fù)

使用道具 舉報

26#
無效樓層,該帖已經(jīng)被刪除
27#
ID:1107336 發(fā)表于 2024-2-4 20:30 | 只看該作者
PDF怎么轉(zhuǎn)HEX
回復(fù)

使用道具 舉報

28#
ID:584814 發(fā)表于 2024-2-5 08:20 | 只看該作者
給你一本莎士比亞全集,你能譯出英文原版么,呵呵
回復(fù)

使用道具 舉報

29#
ID:420836 發(fā)表于 2024-2-5 09:29 | 只看該作者
逆向工程可以根據(jù)不同的硬件平臺將hex文件轉(zhuǎn)換為匯編代碼。 將十六進(jìn)制轉(zhuǎn)換為 C 代碼并不容易。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜丰满寂寞少妇精品 | 日韩欧美国产一区二区三区 | 国产精品99精品久久免费 | 欧美v在线观看 | 男女网站免费观看 | 成人网在线观看 | 国产一区二区三区四区区 | 视频一区在线 | 米奇狠狠鲁 | 不卡视频一区二区三区 | a在线视频| 91免费观看在线 | 国产成人综合在线 | 久久精品国产免费看久久精品 | 国产成在线观看免费视频 | 精品毛片视频 | 精品国产乱码久久久 | 久久久久免费精品国产小说色大师 | 成人免费看片又大又黄 | 亚洲乱码国产乱码精品精的特点 | 中文在线视频 | 一级毛片在线播放 | 成人av播放 | 亚洲精品在线免费观看视频 | 男人的天堂在线视频 | 亚洲视频国产视频 | 亚洲免费久久久 | 中文在线а√在线8 | 九九免费视频 | 91久久婷婷 | 人人干人人舔 | 久久精品一区二区三区四区 | 日韩av在线免费 | 91av免费观看 | 国产综合在线视频 | 国产日韩欧美电影 | 国产人免费人成免费视频 | 综合精品久久久 | 精品一二区 | 国产线视频精品免费观看视频 | 在线看一区二区三区 |