JDP 發表於 2007-11-14 14:31:11

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

引自: 小強博客 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,會找到兩處,第一處為聲明,第二處才是要找的部分,修改為就可以了。.method private hidebysig instance string GetBrand() cil managed
{
      // Code Size: 6 byte(s)
      .maxstack 1
      L_0000: ldstr "<div></div>"
      L_0005: ret
}如果有註冊機制的話,一般給他返回true就可以了。public bool IsValid(KeyInfo keyInfo)
{
      return true;
}轉換成IL後變成.method public hidebysig instance bool IsValid(System.Security.Cryptography.Xml.KeyInfo keyInfo) cil managed
{
      // Code Size: 2 byte(s)
      .maxstack 0
      L_0000: ldc.i4.1
      L_0001: ret
}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
頁: [1]
查看完整版本: SlickUpload控制元件破解的步驟方法