iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
2
Software Development

自動化測試開發的美麗與憂愁系列 第 8

無中生有之國王的程式碼 - 單純篇 [C#]

某天, 歐尚斯說上頭指派一個自動化解決方案的改善措施給我們 .....

but ....

這個舊有的自動化解決方案是只有執行檔而已. 除此之外, 沒有原始碼/ 當初的設計規劃或其他資源通通都沒有 ...
/images/emoticon/emoticon04.gif

歐尚斯要筆者先寫出這個自動化解決方案的規格需求書 ...

/images/emoticon/emoticon09.gif

筆者的反應很大, 因為啥都沒有 卻啥都要筆者想辦法生出來, 這 ...

/images/emoticon/emoticon17.gif

筆者還特別去試圖詢問看看有沒有前人留下來的蛛絲馬跡

結果 ..

  • 當初做這方案的人離職了, 沒有交接文件
    /images/emoticon/emoticon56.gif
  • Server被資訊部門回收了, 原始碼沒有備份
    /images/emoticon/emoticon10.gif
  • 只剩下當年的耆老口述
    /images/emoticon/emoticon38.gif

接下來該怎麼辦呢?

實作解法:

  1. 下載並安裝dnspy
  2. 解壓縮後直接執行dnspy
  3. 打開一個exe檔 ,
    • 選單\ File\ Open
  4. 載入後, 點選展開的圖樣, 就可以看到被解開的原始碼跟各function 名稱
  5. 匯出成visual studio 專案
    • 選單\ File\ Export to project

      PS: Version 可選擇你要轉出的visual studio版本

想要加入額外的功能或修改程式碼, 可以直接修改

將下面的警告的文字修改成
please input inteval time

  1. 直接在dnspy中找到下面紅框處, 直接修改
  2. 點選Debug\ Start debugging
  3. 執行後發現修改成功
  4. 最後, 最重要的步驟, 儲存成DLL或原本的exe

結論:
這篇介紹的是簡單的還原方式, 就是直接打開後就可以快速看到程式碼及做相關編修. 但現實的社會是很險惡的, 如果解開後發現程式碼做過混淆呢? 該怎麼辦

參考資料:


上一篇
好用的WYSIWYG 圖形介面設計工具 (python/ powershell)
下一篇
流程圖自動產生工具 from 程式碼
系列文
自動化測試開發的美麗與憂愁30

尚未有邦友留言

立即登入留言