❶ 反編譯Android APK的具體步驟是怎樣的
1、配置好JAVA環境變數,下載:apktool 解壓的文件放在C盤根目錄的apktool文件夾里(apktool文件夾自己創立)
2打開命令提示符,(開始-運行-輸入cmd)
3輸入:cd \apktool 系統指令到了apktool文件夾(這里就是為什麼要把解壓的apktool解壓的文件放到apktool文件夾的原因,當然你也可以自命名文件夾的名稱,那麼比如arc,那麼指令就變成了:cd \arc 前提是你必須把apktool解壓的文件放到這個文件夾裡面)
4使用RE管理器把系統裡面的framework-res.apk 與 SystemUI.apk 提取出來放在apktool文件夾裡面
5 如果只是想反編譯framework-res.apk
輸入apktool if framework-res.apk(框架的建立)
6開始最重要的反編譯,輸入指令,apktool d framework-res.apk
(反編輯的APK一定要用沒換過圖片的,否則回編輯失敗)
7最後反編譯完成
修改代碼完成後,輸入代碼:apktool d framework-res 即可完成回編譯
8回編譯後的新的 apk在framework/dis 文件夾裡面
9如果反編譯的是系統文件,比如,SystemUI.apk 那麼必須進行掛載框架,反編譯時,必須敲入一下命令:(然後再重復7-9步驟)
apktool if framework-res.apk
apktool if SystemUI.apk
10對於三星手機(比如9100、9108/9100G),如果反編譯SystemUI.apk要敲入一下命令進行框架掛載apktool if framework-res.apk
apktool if twframework-res.apk
apktool if SystemUI.apk
11回編譯的命令是 apktool b XXX (沒有後面的apk後綴)反編譯的命令是 apktool d xxx (有後面的apk)
❷ 如何對一個exe程序反編譯得到它的匯編程序 下了一個 pe explorer 但是不太看的懂 求指教
生成的程序是不能看到源代碼的,不過可以看到那個程序的資源,用e-code explorer 反匯編調試由易語言編譯生成的易格式可執行文件,分析內部結構,查看其中的各項數據。。格式分析:分析易格式可執行文件的總體結構,查看對應項的數
❸ 什麼是PE文件分析呀
即對PE文件的分析。
PE 文件格式
對 PE 的一些說明: PE 是 Portable Excutable 的縮寫,是指「可移植可執行」文件,是 32 位 Windows (包括 OS/2 )可執行文件的標准格式。以前的 16 位 Windows 可執行文件的格式稱為 NE ,即 New Excutable 「新可執行」文件。參考: NE 文件格式
一、簡介
PE文件最前面是一個DOS可執行文件(STUB),這使PE文件成為一個合法的MS-DOS可執行
文件。
DOS文件頭後面是一個32位的PE文件標志0X00004550(IMAGE_NT_SIGNATURE)。
接著就是PE的文件頭了,包含的信息有該程序運行平台、有多少段(sections)、文件
鏈接的時間、它是一個可執行文件(EXE)還是一個動態鏈接庫(DLL)或是其他。
後面緊接著有一個「可選」頭部(這個部分總是存在,但是因為COFF在庫(Libraries)
中用了這個詞,在一可執行模塊中並沒有用這個詞,但是仍被叫做可選的)。這可部分包含程
序載入的更多的信息:開始地址、保留堆棧數量、數據段大小等等。
可選頭中還有一個重要的域是一叫做「數據目錄表」(data directories)的數組;表
中的每一項是一個指向某一個段的指針。例如:如果某程序有一個輸出目錄表(export dire
ctory ),那你就會在數據目錄表中找到一個為IMAGE_DIRECTORY_ENTRY_EXPORT的指針,並且
它將指向某一個段。
可選頭的下面就是「段」(sections)了,通過一個叫做「段頭」(section headers)
的結構索引。實際上,段的內容才是你要真正執行的程序,上面介紹的所有的文件頭及目錄表
等信息就是為了能正確的找到它。
每一個段都有一些有關的標志,例如它包含什麼數據(「初始化數據」或其他),它能
否被共享等,及它數據本身的特徵。大多數情況下(並不是全部),每個段會被一個或多個目
錄表指向,目錄表可通過可選頭的「數據目錄表」的入口找到,就象輸出函數表或基址重定位
表。也有沒有目錄表指向的段,如可執行代碼或初始化數據。
整個文件結構如下:
+-------------------+
| DOS-stub |
+-------------------+
| file-header |
+-------------------+
| optional header |
|- - - - - - - - - -|
| |
| data directories |
| |
+-------------------+
| |
| section headers |
| |
+-------------------+
| |
| section 1 |
| |
+-------------------+
| |
| section 2 |
| |
+-------------------+
| |
| ... |
| |
+-------------------+
| |
| section n |
| |
+-------------------+
下面介紹一下相關虛擬地址(Relative Virtual Addresses)
PE格式文件中經常用到RVA,即相關虛擬地址,用在不知道基地址的情況下表示一個內存
地址。它需要加上基地址才能得到線性地址(Linear address)。
例如:假設一個可執行程序調入內存0x400000處並且程序從RVA 0x1560處開始執行。那
么正確的開始地址是0x401560。如果可執行程序調入0x100000處,則開始地址為0x101560。
因為PE文件的每一個段不必按同樣的邊界對齊方式調入,因此RVA地址的計算變得比較復
雜。例如,在文件中每一個段往往按512個位元組的方式對齊,而在內存中可能以4096位元組的方
式對齊。這方面的介紹可見下面的「SectionAlignment」、「FileAlignment」。舉個例子,
假設你知道一個程序從RVA 0x1560開始執行,你想從那兒反匯編它。你發現內存中的段對齊方
式為4096並且.code段開始於內存RVA 0x1560並且有16384位元組長;那麼你可以知道RVA 0x156
0在這個段的0x560處。你又發現這個段在文件中以512位元組方式對齊並且.code開始於文件0x8
00處,那現在你知道了可執行程序開始於0x800+0x560 = 0xd60處。
二、DOS頭(DOS-stub )
眾所周知DOS頭的概念是從16位的WINDOWS可執行程序(NE格式)中來的,這個部分主要
用在OS/2可執行程序、自解壓文檔及其他應用程序。在PE格式文件中,大多數程序的這個部分
中只有大約100個位元組的代碼,只輸出一個諸如「this program needs windows NT 」之類的
信息。
你可以通過一個叫做IMAGE_DOS_HEADER的結構來識別一個合法的DOS頭。這個結構的頭兩
個位元組一定是「MZ」(#define IMAGE_DOS_SIGNATURE "MZ")。怎麼才能找到PE開始的標志呢
?你可以通過該結構的一個叫做「e_lfanew」(offset 60,32bits) 的成員來找到它。在O
S/2及16位WINDOWS程序中這個標志是一個16位的字;在PE程序中,它是一個32位的雙字,值為
0x00004550(#define IMAGE_NT_SIGNATURE 0x00004550)。
typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header
WORD e_magic; // Magic number
WORD e_cblp; // Bytes on last page of file
WORD e_cp; // Pages in file
WORD e_crlc; // Relocations
WORD e_cparhdr; // Size of header in paragraphs
WORD e_minalloc; // Minimum extra paragraphs needed
WORD e_maxalloc; // Maximum extra paragraphs needed
WORD e_ss; // Initial (relative) SS value
WORD e_sp; // Initial SP value
WORD e_csum; // Checksum
WORD e_ip; // Initial IP value
WORD e_cs; // Initial (relative) CS value
WORD e_lfarlc; // File address of relocation table
WORD e_ovno; // Overlay number
WORD e_res[4]; // Reserved words
WORD e_oemid; // OEM identifier (for e_oeminfo)
WORD e_oeminfo; // OEM information; e_oemid specific
WORD e_res2[10]; // Reserved words
LONG e_lfanew; // File address of new exe header
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
三、文件頭(File Header)
通過DOS頭,你可以找到一個叫做IMAGE_FILE_HEADER的結構,如下;下面我分別介紹一
下。
typedef struct _IMAGE_FILE_HEADER {
WORD Machine; //0x04
WORD NumberOfSections; //0x06
DWORD TimeDateStamp; //0x08
DWORD PointerToSymbolTable; //0x0c
DWORD NumberOfSymbols; //0x10
WORD SizeOfOptionalHeader; //0x14
WORD Characteristics; //0x16
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
Machine:表示該程序要執行的環境及平台,現在已知的值如下:
IMAGE_FILE_MACHINE_I386(0x14c)
Intel 80386 處理器以上
0x014d
Intel 80486 處理器以上
0x014e
Intel Pentium 處理器以上
0x0160
R3000(MIPS)處理器,高位在前
IMAGE_FILE_MACHINE_R3000(0x162)
R3000(MIPS)處理器,低位在前
IMAGE_FILE_MACHINE_R4000(0x166)
R4000(MIPS)處理器,低位在前
IMAGE_FILE_MACHINE_R10000(0x168)
R10000(MIPS)處理器,低位在前
IMAGE_FILE_MACHINE_ALPHA(0x184)
DEC Alpha AXP處理器
IMAGE_FILE_MACHINE_POWERPC(0x1f0)
IBM Power PC,低位在前
NumberOfSections:段的個數,段的概念我們將在下面介紹。
TimeDateStamp:文件建立的時間。你可用這個值來區分同一個文件的不同的版本,即使
它們的商業版本號相同。這個值的格式並沒有明確的規定,但是很顯然的大多數的C編譯器都
把它定為從1970.1.1 00:00:00以來的秒數(time_t )。這個值有時也被用做綁定輸入目錄表
,這將在下面介紹。
注意:一些編譯器將忽略這個值。
PointerToSymbolTable 及 NumberOfSymbols:用在調試信息中,我不太清楚它們的用途
,不過發現它們總為0。
SizeOfOptionalHeader:可選頭的長度(sizeof IMAGE_OPTIONAL_HEADER)你可以用它
來檢驗PE文件的正確性。
Characteristics:是一個標志的集合,其中大部分的位用在目標文件(OBJ)或庫文件
(LIB)中:
Bit 0 (IMAGE_FILE_RELOCS_STRIPPED):置1表示文件中沒有重定向信息。每個段都
有它們自己的重定向信息。這個標志在可執行文件中沒有使用,在可執行文件中是用一個叫做
基址重定向目錄表來表示重定向信息的,這將在下面介紹。
Bit 1 (IMAGE_FILE_EXECUTABLE_IMAGE):置1表示該文件是可執行文件(也就是說
不是一個目標文件或庫文件)。
Bit 2 (IMAGE_FILE_LINE_NUMS_STRIPPED):置1表示沒有行數信息;在可執行文件
中沒有使用。
Bit 3 (IMAGE_FILE_LOCAL_SYMS_STRIPPED):置1表示沒有局部符號信息;在可執行
文件中沒有使用。
Bit 4 (IMAGE_FILE_AGGRESIVE_WS_TRIM):
Bit 7 (IMAGE_FILE_BYTES_REVERSED_LO)
Bit 15 (IMAGE_FILE_BYTES_REVERSED_HI):表示文件的位元組順序如果不是機器所期
望的,那麼在讀出之前要進行交換。在可執行文件中它們是不可信的(操作系統期望按正確的
位元組順序執行程序)。
Bit 8 (IMAGE_FILE_32BIT_MACHINE):表示希望機器為32位機。這個值永遠為1。
Bit 9 (IMAGE_FILE_DEBUG_STRIPPED):表示沒有調試信息,在可執行文件中沒有使
用。
Bit 10 (IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP):置1表示該程序不能運行於可移
動介質中(如軟碟機或CD-ROM)。在這種情況下,OS必須把文件拷貝到交換文件中執行。
Bit 11 (IMAGE_FILE_NET_RUN_FROM_SWAP):置1表示程序不能在網上運行。在這種
情況下,OS必須把文件拷貝到交換文件中執行。
Bit 12 (IMAGE_FILE_SYSTEM):置1表示文件是一個系統文件例如驅動程序。在可執
行文件中沒有使用。
Bit 13 (IMAGE_FILE_DLL):置1表示文件是一個動態鏈接庫(DLL)。
Bit 14 (IMAGE_FILE_UP_SYSTEM_ONLY):表示文件被設計成不能運行於多處理器系
統中。
四、可選頭(Optional Header)
文件頭下面就是可選頭,這是一個叫做IMAGE_OPTIONAL_HEADER的結構。它包含很多關於
PE文件定位的信息。下面分別介紹:
typedef struct _IMAGE_OPTIONAL_HEADER {
//
// Standard fields.
//
WORD Magic; //0x18
BYTE MajorLinkerVersion; //0x1a
BYTE MinorLinkerVersion; //0x1b
DWORD SizeOfCode; //0x1c
DWORD SizeOfInitializedData; //0x20
DWORD SizeOfUninitializedData; //0x24
DWORD AddressOfEntryPoint; //0x28
DWORD BaseOfCode; //0x2c
DWORD BaseOfData; //0x30
//
// NT additional fields.
//
DWORD ImageBase; //0x34
DWORD SectionAlignment; //0x38
DWORD FileAlignment; //0x3c
WORD MajorOperatingSystemVersion; //0x3e
WORD MinorOperatingSystemVersion; //0x40
WORD MajorImageVersion; //0x42
WORD MinorImageVersion; //0x44
WORD MajorSubsystemVersion; //0x46
WORD MinorSubsystemVersion; //0x48
DWORD Win32VersionValue; //0x4c
DWORD SizeOfImage; //0x50
DWORD SizeOfHeaders; //0x54
DWORD CheckSum; //0x58
WORD Subsystem; //0x5c
WORD DllCharacteristics; //0x5e
DWORD SizeOfStackReserve; //0x60
DWORD SizeOfStackCommit; //0x64
DWORD SizeOfHeapReserve; //0x68
DWORD SizeOfHeapCommit; //0x6c
DWORD LoaderFlags; //0x70
DWORD NumberOfRvaAndSizes; //0x74
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;
Magic:這個值好象總是0x010b。
MajorLinkerVersion及MinorLinkerVersion:鏈接器的版本號,這個值不太可靠。
SizeOfCode:可執行代碼的長度。
SizeOfInitializedData:初始化數據的長度(數據段)。
SizeOfUninitializedData:未初始化數據的長度(bss段)。
AddressOfEntryPoint:代碼的入口RVA地址,程序從這兒開始執行。
BaseOfCode:可執行代碼起始位置,意義不大。
BaseOfData:初始化數據起始位置,意義不大。
ImageBase:載入程序首選的RVA地址。這個在址可被Loader改變。
SectionAlignment:段載入後在內存中的對齊方式。
FileAlignment:段在文件中的對齊方式。
MajorOperatingSystemVersion及MinorOperatingSystemVersion:操作系統版本,Load
er並沒有用它。
MajorImageVersion及MinorImageVersion:程序版本。
MajorSubsystemVersion及MinorSubsystemVersion:子系統版本號,這個域系統支持;
例如:如果程序運行於NT下,子系統版本號如果不是4.0的話,對話框不能顯示3D風格。
Win32VersionValue:這個值好象總是為0。
SizeOfImage:程序調入後佔用內存大小(位元組),等於所有段的長度之和。
SizeOfHeaders:所有文件頭的長度之和,它等於從文件開始到第一個段的原始數據之間
的大小。
CheckSum:校驗和。它僅用在驅動程序中,在可執行文件中可能為0。它的計算方法Mic
rosoft不公開,在imagehelp.dll中的CheckSumMappedFile()函數可以計算它。
Subsystem:NT子系統,可能是以下的值:
IMAGE_SUBSYSTEM_NATIVE (1)
不需要子系統。用在驅動程序中。
IMAGE_SUBSYSTEM_WINDOWS_GUI(2)
WIN32 graphical程序(它可用AllocConsole()來打開一個控制台,但是不能在
一開始自動得到)。
IMAGE_SUBSYSTEM_WINDOWS_CUI(3)
WIN32 console程序(它可以一開始自動建立)。
IMAGE_SUBSYSTEM_OS2_CUI(5)
OS/2 console程序(因為程序是OS/2格式,所以它很少用在PE)。
IMAGE_SUBSYSTEM_POSIX_CUI(7)
POSIX console程序。
Windows95程序總是用WIN32子系統,所以只有2和3是合法的值。
DllCharacteristics:Dll狀態。
SizeOfStackReserve:保留堆棧大小。
SizeOfStackCommit:啟動後實際申請的堆棧數,可隨實際情況變大。
SizeOfHeapReserve:保留堆大小。
SizeOfHeapCommit:實際堆大小。
LoaderFlags:好象沒有用。
NumberOfRvaAndSizes:下面的目錄表入口個數,這個值也不可靠,你可用常數IMAGE_N
UMBEROF_DIRECTORY_ENTRIES來代替它,值好象總等於16。
DataDirectory:是一個IMAGE_DATA_DIRECTORY數組,數組元素個數為IMAGE_NUMBEROF_
DIRECTORY_ENTRIES,結構如下:
typedef struct _IMAGE_DATA_DIRECTORY {
DWORD VirtualAddress;
DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
VirtualAddress:起始RVA地址。
Size:長度。
每一個目錄表代表以下的值:
IMAGE_DIRECTORY_ENTRY_EXPORT (0)
IMAGE_DIRECTORY_ENTRY_IMPORT (1)
IMAGE_DIRECTORY_ENTRY_RESOURCE (2)
IMAGE_DIRECTORY_ENTRY_EXCEPTION (3)
IMAGE_DIRECTORY_ENTRY_SECURITY (4)
IMAGE_DIRECTORY_ENTRY_BASERELOC (5)
IMAGE_DIRECTORY_ENTRY_DEBUG (6)
IMAGE_DIRECTORY_ENTRY_COPYRIGHT (7)
IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8)
IMAGE_DIRECTORY_ENTRY_TLS (9)
IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10)
IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11)
IMAGE_DIRECTORY_ENTRY_IAT (12)
❹ PEExplorer反編譯如何設置
大檔磨家知道嗎?下文就是全部內容,相信對大家會有所幫助的,一起來看看吧!
1.實現包含第三方冊棗組件的行姿斗方法代碼
2.點擊:文件.--打開
3.用反編譯軟體打開如下操作
4.打開之前和點擊之後左側列表的變化情況如下
5.點擊左側的「+」號操作如下
6.代碼存放的地方如下
7.點擊:文件--》選擇:保存代碼之後即可導出操作
❺ 如何反編譯EXE執行文件
C32asm 可反編譯成匯編文件
http://www.25it.net/SoftView.Asp?SoftID=227
C32asm 是一款非常不錯的國產靜態反編譯工具!
C32Asm現具有如下功能:
快速靜態反編譯PE格式文件(Exe、Dll等)
提供Hex文件編輯功能,功能強大
提供內存Dump、內存編輯、PE文件Dump、PE內存ImageSize修正等多種實用功能
提供內存反匯編功能,提供匯編語句直接修改功能,免去OPCode的直接操作的繁瑣
提供反編譯語句彩色語法功能,方便閱讀分析,能方便自定義語法色彩
提供輸入表、輸出表、參考字元、跳轉、調用、PE文件分析結果等顯示
提供方便的跳轉、調用目標地址的代碼顯示
提供匯編語句逐位元組分析功能,有助於分析花指令等干擾代碼
❻ 學習反編譯涉及到什麼知識
首先要懂編譯原理。
還要有扎實的匯鏈凳編和c語言棚棗旅岩旦的知識,這一點非常重要。
最好還要有linux/unix環境的知識(如果是在windows環境,你需要了解pe文件格式)。
❼ 求一個能把PE文件反匯編成源碼軟體
我倒,你的意思就是把VB生成的源程序反編譯成VB格式。。。 貌似有類似的東西,很多年前有這樣的,不完全。。。 都不太記得叫神馬了,你BAIDU反匯編VB看看
❽ 如何打造自己的pe呢微軟官方WinPE的製作流程
臨近年關,工作壓力辣么大,大家是不是應該手下留情點啊,讓小編也輕松兩天能在上班的時候耍耍《守望先鋒》什麼的(不是,總編您聽我說,我的意思是想咱們的公眾號來點新鮮的內容,不要整天系統系統啥的,太技術流),唉,還是太年輕,太天真了!
你們這些懶惰的傢伙,真是夠了啊,明天是不是想讓小編把做好的愛好者版WinPE盤快遞給你們啊?
算了,既然總編碰巧看到,又有好多小夥伴想要學習微軟官方PE的製作流程,小編只能繼續碼字了!
想要製作微軟官方純凈版的WinPE,首先就需要去微軟網站,根據自身的需求選擇下載對應的Windows 評估和部署工具包
工具下載軟體並不大,僅1.4MB左右,運行後會提示是直接安裝在電腦中還是單獨下載。如果是在正在使用的電腦上製作PE維護盤,就選上面的安裝,需要分享或在其他電腦上安裝的話,就選下面的。
隨後的選項「 Windows預安裝環境(Windows PE) 」是一定要勾選的,至於其他的工具看個人喜好了。
之後就進入漫長的安全下載安裝時間,2.9GB左右的文件對網速是個不小的考驗,建議晚上睡覺判櫻前准備好下載工作,明天再進入製作維護的盤的環節。
全部完成後會詢問時候「啟動『 開始指南』 」,想學習技術及相關命令的朋友可以研讀一下,也可以沒事的時候去微軟官網翻閱教程(頁面地址: technet.microsoft/zh-cn/library/hh825110.aspx ),沒事多看看, 以後也會像小編一樣成為電腦技術流派的選手哦。
現在點擊開始菜單,在「 Windows Kits 」程序組下,找到「部署和映像工具環境」,以管理員身份運行,隨後出現命名提示符界面,開始掘核叢製作流程吧!因為涉及較多命令操作,建議大家在利用電腦微信端,用瀏覽器打開頁面將命令完全復制下來,避免代碼執行出錯。
首先輸入以下命令開始提取WinPE鏡像,此時會刷屏,等出現結果顯示後再進行操作。
pe amd64 C:WinPE_amd64
接下來使用命令載入WinPE鏡像
Dism /Mount-Image /ImageFile:」C:WinPE_amd64mediasources oot.wim」 /index:1 /MountDir:」C:WinPE_amd64mount」
就會在C盤下生成WinPE的文件夾,如果你想將它存放在其他磁碟位置,將上兩段命令中的「C:」更改其其他位置即可,建議直接在各盤符下直接生成WinPE文件夾,不要存放在有中文路徑或子文件夾中,容易時命令變得復雜出錯。
基於之前下載的Windows版本(8.1/10)的WinPE相關文件已經完全提取出來了,此時只要用
/ISO C:WinPE_amd64 C:WinPE_amd64WinPE_amd64.iso
在後台製作映像文件,等待執行完畢後,在C:WinPE_amd64文件夾下生成了名為「WinPE_amd64.iso」的WinPE映像了。
現在大家只要使用UltraISO(軟碟通),選擇「 啟動-寫入硬碟映像 」功能,將剛才製作好的WinPE_amd64.iso做成啟動U盤,純正的微軟WinPE維護盤就算製作成功。
也可以在命令窗口使用
/UFD C:WinPE_amd64 X:(X代表U盤盤符)
直接製作WinPE維護盤。
官方版本的好處就是一個干凈,沒有任何第三方軟體及用第三方工具製作維護盤插入的廣告,但它的缺點也非常明顯,只能用命令提示符進行操作。大家氏脊別怕哦,有關維護、恢復等DISM命令在昨天的內容中已經詳細解說了,大家只要照著這個來就行(微軟也非常貼心的羅列出所有的命令,大家想添加或刪除組件直接復制technet.microsoft/zh-cn/library/hh824972.aspx#的命令即可)。
如果你覺得只是一個乾巴巴的WinPE不給力,少了點什麼的話,請參看《裝機高手必備軟體WimTool的使用方法介紹 》,利用WimTool軟體為咱們製作好的ISO增加各種維護系統時需要的軟體工具。
❾ pe explorer怎麼修改程序把要改的程序拉進去 反編譯出現代碼段 但不知道點哪裡進行修改
問題是你要改什麼?工具不是主要的,掌握了其中的原理,什麼工具都是一樣的改.
❿ 如何反編譯一個exe文件,並修改裡面一句代碼
1、首先打開瀏覽器,網路搜索「反編譯工具ILSpy」,選擇一個安全的網站進行下載。