找回密碼
 註冊
搜索
查看: 5441|回復: 0

SlickUpload控制元件破解的步驟方法

[複製鏈接]
發表於 2007-11-14 14:31:11 | 顯示全部樓層 |閱讀模式
引自: 小強博客 http://www.xqblog.net/html/425.html

【摘要】
關於slickupload控制元件破解的步驟方法,其它的控件也一樣

【全文】
.net下的控件如果不用使用混淆工具混淆,就相當於把自己的源碼白送給人家。今天剛破解了SlickUpload,一個大文件上傳工具,記錄一下一般的破解步驟:
1.先使用reflector反編譯工具打開dll文件分析,此工具可以反編譯成不同的語言,如c#和il,切換對比一下可以對比c#和il之間的差異,把鼠標移IL指令代碼上,還會出現註釋說明該IL代碼的作用,真是太方便了,找到輸出公司標記的部分BrandFilter.GetBrand(),此控件在httpModule處理中直接在response輸出流中插入了一個div標籤。因此只要將此字符串替換為空就可以了。令人疑惑的是該控件的註冊類LicenseValidator並沒有在其它部分調用,在reflector中分析代碼的依賴關係也很方便,在左側選中一個方法,點擊右鍵選擇analyze就可以分析該方法被哪些代碼調用。
2.用ildasm打開dll,轉儲為文本文件。 (c:\Program Files\Microsoft Visual Studio 8\sdk\v2.0\Bin\ildasm.exe)
3.打開文il文本,首先把校驗去掉,否則會出現異常,在文件頭部,
.publickey = (。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。 )
把這部分整個刪掉。
4.查找GetBrand,會找到兩處,第一處為聲明,第二處才是要找的部分,修改為就可以了。
  1. .method private hidebysig instance string GetBrand() cil managed
  2. {
  3.       // Code Size: 6 byte(s)
  4.       .maxstack 1
  5.       L_0000: ldstr "<div></div>"
  6.       L_0005: ret
  7. }
複製代碼
如果有註冊機制的話,一般給他返回true就可以了。
  1. public bool IsValid(KeyInfo keyInfo)
  2. {
  3.       return true;
  4. }
複製代碼
轉換成IL後變成.
  1. method public hidebysig instance bool IsValid([System.Security]System.Security.Cryptography.Xml.KeyInfo keyInfo) cil managed
  2. {
  3.       // Code Size: 2 byte(s)
  4.       .maxstack 0
  5.       L_0000: ldc.i4.1
  6.       L_0001: ret
  7. }
複製代碼
5.保存il文件後還要重新編譯回去,在vs命令行輸入c:\windows\microsoft.net\framework\v2.0.50727\ilasm.exe /dll /resource=upload.res upload.il其中/dll是表明編譯為dll,/resouce表明要包含的資源文件。  

Reference: http://www.xqblog.net/html/425.html
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|彩色筆小沛的知識庫

GMT+8, 2024-11-23 17:44 , Processed in 0.018806 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回復 返回頂部 返回列表