首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

十六進制轉換:EXE 文件與文本互相轉換完整指南

     編輯:程式設計綜合問答

問題描述

將 16KB 的 EXE 可執行文件通過十六進制轉換為文本格式(如 0x40165...),如何將這些十六進制字符串還原為可執行的 .exe 文件?

核心原理

全程以二進制模式讀寫文件。只要文件內容位元組完全一致,修改後綴名即可正常執行。

操作步驟

  1. EXE → 文本:以二進制模式讀取 EXE,將每個位元組轉為兩位十六進制字符輸出到文本文件
  2. 文本 → EXE:讀取文本文件,每兩個字符解析為一個位元組,以二進制模式寫入新文件,命名為 .exe

關鍵代碼思路(C/C++ 示例)

// 讀取 EXE 並轉十六進制文本
FILE* fin = fopen("input.exe", "rb");
FILE* fout = fopen("output.txt", "w");
unsigned char byte;
while (fread(&byte, 1, 1, fin)) {
    fprintf(fout, "%02X", byte);
}
fclose(fin); fclose(fout);

// 還原:讀取文本並寫入 EXE
FILE* fin = fopen("output.txt", "r");
FILE* fout = fopen("restored.exe", "wb");
char hex[3] = {0};
while (fread(hex, 1, 2, fin) == 2) {
    unsigned char byte = (unsigned char)strtol(hex, NULL, 16);
    fwrite(&byte, 1, 1, fout);
}
fclose(fin); fclose(fout);

注意事項

  • 必須使用 "rb" 和 "wb" 二進制模式,避免換行符轉換導致數據損壞
  • 文本文件會比原 EXE 大約 2 倍(每位元組變為 2 字符)
  • 還原後校驗文件大小和 MD5,確保完全一致
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved