首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

自解密加密程式製作:結合兩個 EXE 實現自解密執行檔

     編輯:關於C++

架構概述

自解密 EXE 由兩部分組成:

  1. 可執行代碼段:負責密碼驗證、資料解密(對應 main2.exe)。
  2. 加密資料段:包含加密後的密碼與原始檔案資料(對應 main.exe 附加內容)。

製作流程:分別編譯 main.c(加密產生器)與 main2.c(解密執行器)為 main.exe、main2.exe,再以 COPY /B main.exe+main2.exe Key.exe 合併(順序不可顛倒)。

使用方式

Key.exe  欲加密檔案  產生的EXE檔名

執行產生的 EXE,輸入密碼(最多三次錯誤即退出),即可將原始檔案還原至指定路徑。

核心原始碼解析

main.c - 加密產生器

  • 讀取 main.exe 自身(從位移 13940 開始)作為解密器模組寫入輸出檔。
  • 提示輸入密碼,以簡單演算法 (i + password[i]) & 0xFF 加密後寫入,結尾標記 0x10。
  • 讀取原始檔案,逐位元組與密碼進行 ch = (ch & password[i]) + 1 運算後寫入(密碼循環使用)。

main2.c - 解密執行器

  • 從固定位移 16888 讀取附加資料區。
  • 還原儲存的加密密碼:oldpassword[i] = (oldpassword[i] & i) - 1。
  • 提示輸入密碼比對(三次機會)。
  • 驗證通過後,以反運算 ch = (ch - 1) & password[i] 解密資料並寫入目標檔案。

注意事項

  • 位移值(13940、16888)需依實際編譯環境調整(main.exe 與 main2.exe 的實際長度)。
  • 加密演算法極簡單,僅供教學示範,實務應用需採用更強健的加密演算法(如 AES)。
  • 原始碼為早期 TC 2.0 環境撰寫,現代編譯器可能需調整標頭檔與函數原型。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved