導航:首頁 > 源碼編譯 > vs2019反編譯實驗

vs2019反編譯實驗

發布時間:2023-06-05 19:50:42

1. VS 中如何把編譯好的ASP.NET網站 反編譯啊

如果是通過普通發布的話,
在aspx頁面page指令中有一個屬性inherits 他就是說他相對應的cs文件,生成了DLL的名字,不過都是隨機命名的。找到後可以用.NET Reflector 反編譯下,
如果是用WebDeploymentSetup插件發布的話, 就只有一個程序集了,那更好辦了

2. 如何在vs中安裝dll反編譯工具

網路搜索下載Reflector綠色版,解壓,可找到文件Reflector,

雙擊Reflector,即可運行Reflector,可看到如下界面;左上角工作欄,File->Open Assembly;打開你所需要打開的dll文件

在軟體左邊工作區域我們就可以看到你所打開的dll文件,點擊展開,在所選擇的.dll文件下面可以看到dll中所有的編寫的類,

4
點擊類名我們就可以看到裡面編寫的內容了

3. 如何反編譯一個exe文件,並修改裡面一句代碼

1、首先打開瀏覽器,網路搜索「反編譯工具ILSpy」,選擇一個安全的網站進行下載。

4. 如何進行反編程

我們按照三種不同的分類,從多個角度闡述反編譯的基本過程。

如果按照反編譯技術實施的順序劃分,則可以分為7個階段,它們是:句法分析、語義分析、中間代碼生成、控制流圖生成、控制流分析、代碼生成。

如果按照實踐中的具體操作劃分,一般也可以分為7個不同的步驟,分別是:文件裝載,指令解碼,語義映射,相關圖構造,過程分析,類型分析和結果輸出等。

以逆向分析為目的,反編譯的各個階段並不是一個嚴格的一遍順序,而是存在著一些並行的模塊,並且也需要通過循環執行分析過程來針對某些特殊問題(例如非N分支代碼產生的間接跳轉指令)進行分析和恢復。

反編譯的處理過程,如果按功能區分,可以分為:前端、中端和後端三個部分。其實這種劃分方式是將上述兩種過程的階段進行合並,也就是將幾個反編譯器階段組合在一起。這樣劃分的好處是:通過設計不同的前端、中端和後端以實現針對多種源和目標的反編譯器。

5. EXE文件反編譯成源碼

EXE文件可以通過步驟來反編譯成源碼,具體步驟如下:

1、在網路上搜索下載反編譯工具ILSpy,ILspy是一個開源的.net反編譯軟體,使用十分方便。解壓後如圖,雙擊.exe文件打開解壓工具。

(5)vs2019反編譯實驗擴展閱讀:

反編譯也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(比如可執行程序)進行「逆向分析、襲轎前研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方帆培法等設計要素,某些特拍清定情況下可能推導出源代碼。

exe是編譯好的程序文件 要看結構就得反編譯 但是通常不能把可執行文件變成高級語言源代碼,只能轉換成匯編程序。 所以要要看結構不止要會反編譯 還得精通匯編語言。

6. VS怎樣給項目加強名稱,怎樣防止反編譯

.net 生成的dll 反編譯很簡單的
一般.net的dll防止反編譯 採用 加殼和混淆 兩種方案
加殼我沒怎麼研究過,一般加殼工具使用後會造成dll不能使用
最常用的就是混淆了,工具也很多 我一般使用Xenocode進行混淆
可以對 類名,變數名,屬性 等命名進行混淆 減小其反編譯後的可讀性
你可以自己嘗試一下 基本混淆後的程序 反編譯後 很難自己解讀出來

7. Visual Studio 2019怎麼編譯C語言源程序

1、首先,打開C語言編輯器工具,然後在該工具中編寫程序的源代碼,如下圖所示,然後進入下一步。

8. vs2019不小心把兩個程序弄了一個解決方案

想要解決可以根據
1.庫的分類

根據鏈接時期的不同,庫又有靜態庫和動態庫之分。

靜態庫是在鏈接階段被鏈接的(好像是廢話,但事實就是這樣),所以生成的可執行文件就不受庫的影響了,即使庫被刪除了,程序依然可以成功運行。

有別於靜態庫,動態庫的鏈接是在程序執行的時候被鏈接的。所以,即使程序編譯完,庫仍須保留在系統上,以供程序運行時調用。(TODO:鏈接動態庫時鏈接階段到底做了什麼)

2 靜態庫和動態庫的比較

鏈接靜態庫其實從某種意義上來說也是一種粘貼復制,只不過它操作則棗的對象是目標代碼而不是源碼而已。因為靜態庫被鏈接後庫就直接嵌入可執行文件中了,這樣就帶來了兩個問題。

首先就是系統空間被浪費了。這是顯而易見的,想像一下,如果多個程序鏈接了同一個庫,則每一個生成的可執行文件就都會有一個庫的副本,必然會浪費系統空間。

再者,人非聖賢,即使是精心調試的庫,也難免會有錯。一旦發現了庫中有bug,挽救起來就比較麻煩了。必須一一把鏈接該庫的程序找出來,然後重新編譯。

而動態庫的出現正彌補了靜態庫的以上弊端。因為動態庫是在程序運行時被鏈接的,所以磁碟上只須保留一份副本,因此節約了磁碟空間。如果發現了bug或要升級也很簡單,只要用新的庫把原來的替換掉就行了。

那麼,是不是靜態庫就一無是處了呢?

答曰:非也非也。不是有句話么:存在即是合理。靜態庫既然沒有湮沒在滔滔的歷史長河中,就必然有它的用武之地。想像一下這樣的情況:如果你用libpcap庫編了一個程序,要給被人運行,而他的系統上沒有裝pcap庫,該怎麼解決呢?最簡單的辦法就是編譯該程序時把所有要鏈接的庫都鏈接它們的靜態庫,這樣,就可以在別人的系統上直接運行該程序了。

所謂有得必有失,正因為動態庫在程序運行時被鏈接,故程序的運行速度和鏈接靜態庫的版本相比必然會打折扣。然而瑕不掩瑜,動態庫的不足相對於它帶來的好處在現今硬體下簡直是微不足道的,所以鏈接程序在鏈接時一般是優先鏈接動態庫的,除非用-static參數指定鏈接靜態庫。

gcc作為編譯工具,用在Linux操作系統中,可以編譯C、C++、Object-C、JAVA等語言。編譯過程中可以帶編譯選項,選擇編譯過程。

一、GCC編譯流程

1)預處理 Pre-Processing

2)編譯 Compiling

3)匯編 Assembling

4)鏈接 Linking

二、GCC編譯選項

1、gcc總體選項列表

1) -c :指編譯,不鏈接,生成目標文件「.o」。

2) -S :只編譯,不匯編,生成匯編代碼「.S」。

3) -E :只進行預編譯/預處理,不做其他處理。

4) -o file:把輸出文件輸出到file里。

5) -g :在可執行程序中包含標准調試信息。

6) -v :列印出編譯器內部編譯各過程的命令行信息和編譯器的版本。孫帶拆

7) -I dir :在頭文件的搜索路徑列表中添加dir目錄

8) -L dir :在庫文件的搜索路徑列表中添加dir目錄

9) -static :連接靜態庫(靜態庫也可以用動態庫鏈接方式鏈接)

10) -llibrary :連接名為library的庫文件(顯示指定需要鏈接的動態庫文件)

2、gcc告警和出錯選項

1) -ansi :支持符合ANSI標準的C程序

2) -pedantic :允許發出ANSI C標准所列出的全部警告信息

3) -pedantic-error :允許發出ANSI C標准所列出的全部錯誤信息

4) -w :關閉所有警告

5) -Wall :允許發出gcc提供的所有有用的報警信息

6) -werror :把所有的告警信息轉化為錯誤信息,並在告警發生時終止編譯過程

3、gcc優化選項

gcc可以對代碼進行優化,它通過編譯選項「-On」來控制優化代碼的生成,其中n是一個代表優化級別的整數。對於不同版本的gcc,

n的取值范圍不一致,比較典型的范圍為0變化到2或者3。

雖然優化選項可以加速代碼的運行速度,但對於調試而言將是一個很大的挑戰。因為代碼在經過優化之後,原先在源程序中聲明和使用

的變數很可能不再使用,控制流也可能會突然跳轉到意外的地方,循環語句也可能因為循環展開而變得到處行神都有。

三、GCC生成動態庫和靜態庫

1)動態庫生成

1.單個源文件/目標直接生成動態庫

a. gcc -fPIC -shared xxx.c -o libxxx.sob.gcc -fPIC -shared xxx.o -o libxxx.so
2.多個源文件/目標生成動態庫

a.gcc -fPIC -shared xxx1.c xxx2.c xxx3.c -o libxxx.so b.gcc -fPIC -shared xxx1.o xxx2.o xxx3.o -o libxxx.so
2)靜態庫生成

1.單個源文件/目標直接生成靜態庫

a.ar -rc libxxx.a xxx.o(正確方法)b. ar -rc libxxx.a xxx.c (靜態庫可以生成;當運行連接了該靜態庫的可執行程序會報錯:could not read symbols:Archive has no index;run ranlib to add one)
2.多個源文件/目標生成靜態庫

a.ar -rc libxxx.a xxx1.o xxx2.o xxx3.o (正確方法)b.ar -rc libxxx.a xxx1.c xxx2.c xxx3.c (靜態庫可以生成;當運行連接了該靜態庫的可執行程序會報錯:could not read symbols:Archive has no index;run ranlib to add one)
四、多個源文件生成一個可執行文件

9. 請問怎樣將.Net程序反編譯為一個VS工程,可以正常運行調試

vs編寫程序是以項目為單位的(對小程序很不適合)。第一步是建里一個項目第二部是添加源代碼文件(.cpp)和頭文件(.h)在打開的空白文檔寫代碼按F5或者點擊面板上的啟動本地調試器添加源代碼文件的方法可以按快捷鍵也可以用下面的方法:在屏幕的左側或者右側有一個解決方案管理器,右點源文件-》添加-》新建項-》.cpp文件-》輸入文件名-》確定。

閱讀全文

與vs2019反編譯實驗相關的資料

熱點內容
電腦怎麼下載appstore 瀏覽:725
兩台電腦使用代理伺服器怎麼連接 瀏覽:231
初創公司買什麼配置的雲伺服器 瀏覽:165
程序員的實力測試 瀏覽:509
手機版寶可夢模組的伺服器怎麼進 瀏覽:119
qt在arm上編譯過程 瀏覽:124
黑白命令在哪裡 瀏覽:22
演算法崗問面試官的問題 瀏覽:117
720pjpg壓縮 瀏覽:525
經濟學人app怎麼用 瀏覽:734
thunderbird如何刪除伺服器 瀏覽:632
編譯內核模塊准備工作 瀏覽:187
protues單片機 瀏覽:680
淘寶想多開店怎麼租伺服器 瀏覽:581
小鹿情感app怎麼打不開了 瀏覽:325
可自編譯的C 瀏覽:63
vfl90壓縮機是哪個廠家 瀏覽:678
安卓系統游戲怎麼開發 瀏覽:410
抖助力app綁定的銀行卡怎麼辦 瀏覽:467
我的電腦文件夾打開方式 瀏覽:931