本文為原創作品,轉載請注明出處,作者:Chris.xisaer E-mail:69920579@qq.com
QQ群3244694
補丁下載地址:Reflector.path11.1.rar-系統安全文檔類資源-CSDN下載
程序下載地址:
官方下載:
.NET Decompiler: Decompile Any .NET Code | .NET Reflector (red-gate.com)
https://www.red-gate.com/products/dotnet-development/reflector/
1.關于C#的反編譯軟件xx,其實非常簡單。我會在下面的教程加以說明。希望有需要的同學參考技術要點,不要用于商業目的。
2.本次xx只是技術展示,不用于任何商業目的,如有需求請購買正版軟件。也希望官方盡快修復漏洞。
3.如果需要交流技術的可以加本人的QQ群3244694(確實很LOW但是沒辦法咱們國家的特色),我看現在網上很多的教程只是教你123,但是不教你為什么寫123,希望能懂我意思。
轉入正題!!
估計能看到這篇文章的人 因該知道什么是Refector.以及它的用處。這里我就不在贅述了。
本次xx的版本是目前此程序的最新版本 11.1 trial.版。xx方式是暴力xx。如果喜歡寫注冊機的朋友,我下面會告訴你他的注冊算法在那個文件中。你可以自己研究一下搞定他的注冊機制。
先來張圖沒xx的時候是什么樣子!
程序彈出一個模態對話框提示到期,并給出兩個按鈕。一個是激活一個是關閉程序。
當我們點擊激活的時候會彈出輸入激活KEY 和電子郵件地址的對話框。點擊另一個便是直接退出程序。
下面 開搞!
既然是C#的程序 自然是通過IL 中間語言翻譯器運行的程序。我們打開能反編譯此類程序的軟件,有很多。推薦兩個,一個是微軟自帶的ildasm(ilasm),另外還有一個就是ILSPY。這兩個你用哪個查看都可以。當然最好用的還是咱們下面要xx的這個Reflector。
我們用ILSPY打開目標軟件:
我們會發現Reflector有很多的類??赡苡行┡笥褯]有學過C#(本人就是)。你就當C++看就行。我們當然要找到我們關心的類。什么是我們關心的?
這里我先說下破軟件的xx法很多,比如1.找到負責激活的函數研究其算法寫出相應的注冊機。2.直接跳過驗證程序或者更改驗證結果。3.直接屏蔽此模態對話框讓程序跳過檢測。等等吧。因為方法太多了我這里就不一一列舉的,喜歡xx的朋友們可以自己開闊思維。
那么對于這種基本直接源代碼給你到眼前的代碼。我們就沒什么可說的了。先看看源代碼里的哪些命名空間是我們需要的。
對就是這個名字空間 Licensing.從他的英文名字我們就能猜到 這是關于許可證相關的類的集合。
我們點進去看發現了幾個 類。第一個BouncerParms 是保鏢類的參數類。也就是負責監視我們對程序許可證做什么的類的一些參數的類。
第二個是版本信息類Edition. 這個公司在給版本信息的時候一共給了這么幾個:
internal enum Edition
{
None = 0,
Standard = 1,
VS = 2,
VSPro = 3,
Evaluation = 10
}
我們現在的TRIAL 就是None=0;
但是這個是無法修改的,因為修改也沒用。。。
繼續往下看 EndTrialScreen類 從名字就能看出來這是構建我們試用結束對話框那類,當我們試用結束后程序會初始化這個類,并加載對話框。這個對話框是模態的 也就是說他的存在我們不能使用程序的任何功能。
好現在回到剛才的問題:我們關心什么?
我們就是關心這個對話框。我們讓程序跳過調用這個類直接到下面正常程序的初始化就可以繼續使用這個Reflector。
下面我們點擊EndTrialScreen:
我們會看到這個類的完整定義是不是很贊?這可比反編譯C的程序簡單多了。
可以看到這個幾個方法 Reflector.Application.Licensing.EndTrialScreen.ActivateClick
private void ActivateClick(object sender, RoutedEventArgs e)
{
TheBouncer.EnterSerialNumber(new Win32Helper
{
Handle = new WindowInteropHelper(this).Handle
});
if (TheBouncer.Licence.Activated)
{
base.dialogresult = true;
}
if (TheBouncer.IsEvaluation)
{
base.DialogResult = true;
}
}
Reflector.Application.Licensing.EndTrialScreen.CloseClick
private void CloseClick(object sender, RoutedEventArgs e)
{
environment.exit(-1);
}
這兩個就是相關的兩個按鈕的 對應方法(函數);
第二個方法不用說就是退出程序。我們來看第一個方法。其中有一項條件判斷:
if (TheBouncer.Licence.Activated)
{
base.DialogResult = true;
}
if (TheBouncer.IsEvaluation)
{
base.DialogResult = true;
}
當程序的需可能是激活狀態的時候 對話框的值為真,當程序有評估版本值的時候對話框的值為真。注意這里的值為真并不是顯示不顯示對話框!
我們這里關心的就是這個Licence.Activated.方法。我們找到Licence類的對應方法中去看看!
在哪里呢?找不到啊。沒在Reflector的名字空間中。這個類是一個DLL 導入類 導入的DLL 是RedGate.Licensing.Client中。
我們進入到這個命名空間中的Lisence類:
我們可以研究一下這個類 :從這些方法的名字我們可以看出相應的功能。
第一個便是剛才提到的ACTived 是一個BOOL 類型的變量 記錄程序是否已經注冊。
另外比較有價值的是下面這些方法!
其中CreateNewXXX函數是關于如何生成注冊許可證算法的函數。有興趣的童鞋可以看一下,我列出一個:
public static Licence CreateTamperedLicence(string machineHash, int productCode, string productName, string displayName, int majorVersion, int minorVersion, DateTime utcNow, string location)
{
Licence licence = CreateNewTrialLicence(machineHash, productCode, productName, displayName, majorVersion, minorVersion, utcNow, 0, location);
licence.Status = TrialStatus.Tampered;
if (0 == 0)
{
licence.TrialLength = 14;
}
return licence;
}
通過機器硬件的哈希數值,產品代碼。產品名字 等等等弄出來的一個算法。。。是不是很復雜。。不關心了因為我們沒有打算做注冊機。。我們爆破。。
回到我們關心的話題,我們不希望產生那個提示對話框。我們還希望程序繼續運行。。。
在調頭來看一下在EndTrialScreen類下面。有個LicenceChecker類 我們進去看:
里面只有兩個函數。我們只關心一個 就是 CheckLicense:
public void CheckLicense(IServiceProvider serviceProvider)
{
try
{
TheBouncer.Parms = new BouncerParms(m_MainWindow?.Icon, "Thank you for trying .NET Reflector", ".NET Reflector is a class browser, analyzer, and decompiler for .NET code.", ".NET Reflector");
if (!TheBouncer.CheckLicence(m_MainWindow, Edition.Standard, serviceProvider))
{
m_InternalApplicationManager.Exit();
}
if (TheBouncer.Licence.Activated)
{
m_ProBanner?.Close();
}
m_InternalApplicationManager.UpdateTitleBar();
}
catch (Exception exception)
{
ILog logger = LogService.GetLogger(GetType().FullName);
logger.Fatal("Error checking Licensing", exception);
Environment.Exit(71);
}
}
我們看一下 這個就很清楚了 是驗證程序。當驗證沒有通過后 退出程序管理器。也就是退出程序。如果驗證是ACTIVATED的許可證,那么關閉廣告條執行程序管理器類的標題更新 并繼續初始化程序。這里就是我們要更改的第一個地方 我們看一下翻譯器翻譯過來的語言
這里你只需要懂一點IL 語法就可以。
這里我們要修改的就是程序的25行我們把
brfalse.s ->(32)call RedGate.licensing.Client XXXXXXXXXXXXXXX_LICENCE()
修改為
brtrue.s ->(32)call RedGate.licensing.Client XXXXXXXXXXXXXXX_LICENCE()
也就是說當我們沒有許可證的時候驗證通過!
當然這里只改這個雖然可以用但是還是會彈出對話框,必須手動關閉對話框才能繼續使用程序。
我們繼續尋找需要的就是連對話框你也不要出是話直接初始正常的程序 跳過驗證對話框。
我們來看這里
這就是我們開頭說的要關注的哪個保鏢類,他里面也有一個CHECKLICENCE 方法這個方法就是用來初始化提示我們試用已過期哪個模態對話框的,我們這里還是看他的翻譯程序:
這里我就不繼續說明我們怎么改了,留給童鞋們自己思考把。這里修改后我們就可以爽快的用Reflextor 。
破解后的程序:
本文為原創作品,轉載請注明出處,作者:Chris.xisaer E-mail:69920579@qq.com
QQ群3244694
————————————————
版權聲明:本文為CSDN博主「xsdn」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xsdn123/article/details/122171076
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
蚌埠電大的文憑有用嗎?有用。安徽廣播電視大學蚌埠分校于1979年1月1日在蚌埠成立。學校地址位于皖北中心城市張公山路126號(郵政編碼:233000)(行政區代碼:3403)。我校建校43年,培養了大批優秀人才。我們學校以教書育人為主,學校符合體制,人文。蚌埠電大的文憑有用嗎?答:蚌埠電大的有用,基層公務員有電大就可以考。...
dnf結婚戒指分為幾種?結婚戒指有很多種,例如金戒指、白金戒指、鉆石戒指和花式戒指。下面我們就來看看每一款的特點,讓你在選購的時候能夠選擇到合適的婚戒。1.金戒指金戒指最經典,男女皆宜。為了改變金戒指平淡無奇的外觀,可以用一些小技巧,比如可以用褪色的材料做戒指,或者請人專門為你做一對結婚戒指。然后你可以選擇那些表面有很多小金屬顆粒的婚戒,或者邊緣有繩紋的。其實一般來說,這種婚戒可以用白金和黃金來做...
北京十中初中部怎么樣?第十中學非常好。其校長知名度高于官校,但在學校的教育理念和精耕細作上頗有建樹。是中央和各大部委選送的學校,共建單位都很優秀。是東城區最好的中學,生源出口比較理想。是一所與主流社會緊密相連的小學,外語教學特色令人印象深刻,令人羨慕。北京十中初中部怎么樣?在豐臺排名第三。我從初一開始就在十中讀書,現在高中還在十中。我覺得十中初中部比高中好。高三實驗班還可以,普通班就沒那么好了。另...