錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
天喜轉盤抽獎軟件一個非常簡單的.net程序的爆破 [.NET逆向]

作者: 肥牛  日期:2017-05-24 18:13:05   來源: 本站整理

 待破解軟件:天喜轉盤抽獎軟件(一年版)
使用工具:Exeinfo PE(查殼)、GrayWolf(反編譯)、IDA(解碼HEX)、UltraEdit(修改EXE文件)

=====================華麗的分割線========================

剛注冊吾愛破解,跟著大家學習一下破解。原來一直玩的是DOS下的破解,對于Windows的程序,只對原來的Delphi、C++等程序熟悉一些,對于現在的.NET以及JAVA程序的結構就不甚了解了。
昨天晚上閑來無事,想鼓搗一下破解,于是就去共享軟件注冊中心找個軟件練練手。找到了這個,天喜抽獎程序。http://www.sharebank.com.cn/soft/SoftView_51272.htm。
下載安裝發現需要.net framework 4.0,說明這是一個.net的程序。
安裝運行的界面如下,未注冊版本可以抽獎五次。(左上角顯示最近五次抽獎結果)
 

如果再點擊開始按鈕,程序就會提示
 


正好就用這個程序練手吧,先查一下有沒有殼:
 

提示這個程序是C#.NET或者VB.NET的,沒有加殼,但是很可能用了.NET Reactor做了代碼的混淆。既然沒有加殼,那就直接上GrayWolf吧:
 

在左面的樹狀結構中,可以看到很多代碼都是亂七八糟的,估計是被.NET Reactor混淆過的。所以,對于編寫注冊機這樣的事情,我就不抱什么希望了。
 

最左面的樹中,唯一一個可識別的節點是Ploverinfo,點開,下面是LuckyDraw。呵呵,這不就是幸運大轉盤嘛。再點擊進去看,有一個MainForm的節點,里面有一些軟件首頁上操作的功能。比如那個開始按鈕。

[C#] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
private void Start()
{
        if (Global.IsTrial && SchemaManager.Instance.Results.Count >= Global.get_TrialCount())   //這里判斷注冊標識,以及抽獎次數,這個判斷方法有問題
        {
                MessageBox.Show(kgbOBx7BanbFa22Hp9.ol99ukmDA(14708));                                 //跳出未注冊提示
                return;
        }
        if (WheelManager.Instance.getGoal() == null)
        {
                MessageBox.Show(kgbOBx7BanbFa22Hp9.ol99ukmDA(14762));
                return;
        }
        if (SchemaManager.CurrentSchema.IsInputInfo)
        {.......


大家看這段代碼
Global.IsTrial && SchemaManager.Instance.Results.Count >= Global.get_TrialCount()
Global.IsTrial  是否試用版,試用版的話就是True,注冊版的話就是False
SchemaManager.Instance.Results.Count 是抽獎次數,Global.get_TrialCount()是系統設置的未注冊可抽獎次數,也就是5次。
我說這段代碼有問題,就是這里把兩個條件放在一起用&&連接,也就是說,只有這兩個條件都為True的時候,才會跳出對話框。對于&&條件來說,屬于交集,就是相對嚴格的條件。你把未注冊的條件設置的那么窄,也就是已注冊的范圍就廣了。這個和注冊的意義背道而馳了。
那對于爆破來說,只要把其中一個條件改為False,這個軟件就被破解掉了。
所以勸大家今后寫程序的時候,遇到這種情況,用&&還是用||要考慮好。
這里如果爆破的話,就把這里的brfalse.s改為brtrue.s就可以了。
 

當然,這樣做,實際上的意義就是當這個軟件未注冊的時候,可以抽獎5次以上,而如果已注冊,則只能抽獎5次以下。雖然用起來沒問題,但是總是有些別扭吧。
還是繼續看左面的樹,發現一個Program,下面有個Main,點開看:
 
這個Main應該是程序運行時首先執行的代碼,一般來說都是一些變量的初始化

仔細看右面部分的代碼:
 
我用黃色框圈出來的,就是被.NET Reactor混淆過的代碼,基本上看不明白是什么意思,所以我們也就不去研究了。
看紅框圈起來的
Global.IsTrial = true;
哇靠,這是什么?軟件運行起來,首先初始化為未注冊版?再往下看:
     if (Global.IsTrial)
    {
        Global.IsTrial = false;
        Global.IsTrial = !Global.Instance.IsReg(kgbOBx7BanbFa22Hp9.ol99ukmDA(3274));
    }
如果是未注冊版,那就調用IsReg函數去判斷是不是注冊版,即使IsReg函數調用錯誤也把軟件置為注冊版。
看到了吧?軟件作者的想法有問題,Global.IsTrial = false; 這一句就不該寫啊!
我們把這兩部分結合看,軟件先是置成了未注冊版,然后判斷未注冊的話再去改狀態。那么反過來說,假如是已注冊,后面那句就沒用了。
也就是說,爆破的話,只需要把
Global.IsTrial = true;
改為
Global.IsTrial = false;
就搞定了。
唉唉唉,我再說一下啊,寫程序可不能這樣寫啊,漏洞太大了。


我們現在已經知道怎么改了,用ILDASM解出*.il文件,修改相應代碼后再用ilasm重新編譯即可。不過,那樣生成的文件與原文件可能會有差異,咱不是講究完美嘛,還是直接修改EXE的字節好了。可是對于.NET的匯編助記符,我可不是很熟悉,只好借助IDA了。
運行IDA,加載需要破解的程序,在左面找到main:
 

在右面的代碼中,可以找到剛才我們要修改的語句:
 
ldc.i4.1
stsfld   bool [Ploverinfo.CommonLib]Ploverinfo.CommonLib.App.Global::IsTrial
這兩句的意思就是給IsTrial這個變量賦值1,1就是True嘛。那么我們現在改成False,所以知道改哪里了吧?
對的,就是把
ldc.i4.1
改成
ldc.i4.0
就可以了

在這里點中ldc.i4.1這條語句,然后切換到HEX View-A的視圖
 
能看到當前17是被選中的狀態,說明ldc.i4.1這句的匯編助記符是17,那么百度一下(或者在上下文里找找)就知道ldc.i4.0的助記符是16。也就是說,我們把這里的17改為16就可以。


運行UlTraEdit,打開要破解的程序,搜索16進制代碼。為了準確定位,可以多搜幾位,比如我搜的就是000A166F2701000A1780,找到后,把17改成16,保存。
 

現在再去運行一下待破解的程序,點擊開始,軟件繼續抽獎,不再彈出注冊提示窗口,說明破解完成。
 

這個爆破,只改了一個字節,對程序的完整性沒有影響。只是這個軟件屬于注冊機制做得比較差的軟件,所以破解起來也沒什么技術含量,好像挺沒有成就感的。
下次找一個帶殼的練練。



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 久久精品日韩av无码| 亚洲精品色午夜无码专区日韩| 亚洲精品无码午夜福利中文字幕| 亚洲中文字幕无码爆乳av中文 | 亚洲AV无码一区二区乱子仑| 无码专区HEYZO色欲AV| 久久久久久久亚洲Av无码| 在线观看免费无码视频| 蜜桃AV无码免费看永久| 久久亚洲国产成人精品无码区| 久久久久久精品无码人妻| 亚洲AV永久无码精品| 国产av无码专区亚洲av毛片搜| 无码H黄肉动漫在线观看网站| 西西4444www大胆无码| av无码免费一区二区三区| 色欲狠狠躁天天躁无码中文字幕| 狠狠爱无码一区二区三区| 精品少妇人妻AV无码专区不卡 | 久久久无码一区二区三区| 无码人妻少妇久久中文字幕| AV无码人妻中文字幕| 人妻无码视频一区二区三区 | 亚洲精品无码日韩国产不卡av| 国产成人无码一区二区三区| 国产精品99无码一区二区 | 亚洲a无码综合a国产av中文| 久久水蜜桃亚洲av无码精品麻豆| 国产成人亚洲综合无码精品| 国产午夜片无码区在线播放| 亚洲成A人片在线观看无码3D| 日产无码1区2区在线观看 | 精品久久久久久无码国产| 国产成年无码久久久久下载| 无码精油按摩潮喷在播放| 国产色无码精品视频国产| 狼人无码精华AV午夜精品| 国产精品无码专区在线观看| 日韩精品无码一区二区三区AV | 亚洲AV综合色区无码一二三区| 亚洲中文字幕无码av在线|