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

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

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

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

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

如果再點(diǎn)擊開始按鈕,程序就會(huì)提示
 


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

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

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

最左面的樹中,唯一一個(gè)可識別的節(jié)點(diǎn)是Ploverinfo,點(diǎn)開,下面是LuckyDraw。呵呵,這不就是幸運(yùn)大轉(zhuǎn)盤嘛。再點(diǎn)擊進(jìn)去看,有一個(gè)MainForm的節(jié)點(diǎn),里面有一些軟件首頁上操作的功能。比如那個(gè)開始按鈕。

[C#] 純文本查看 復(fù)制代碼
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())   //這里判斷注冊標(biāo)識,以及抽獎(jiǎng)次數(shù),這個(gè)判斷方法有問題
        {
                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 是抽獎(jiǎng)次數(shù),Global.get_TrialCount()是系統(tǒng)設(shè)置的未注冊可抽獎(jiǎng)次數(shù),也就是5次。
我說這段代碼有問題,就是這里把兩個(gè)條件放在一起用&&連接,也就是說,只有這兩個(gè)條件都為True的時(shí)候,才會(huì)跳出對話框。對于&&條件來說,屬于交集,就是相對嚴(yán)格的條件。你把未注冊的條件設(shè)置的那么窄,也就是已注冊的范圍就廣了。這個(gè)和注冊的意義背道而馳了。
那對于爆破來說,只要把其中一個(gè)條件改為False,這個(gè)軟件就被破解掉了。
所以勸大家今后寫程序的時(shí)候,遇到這種情況,用&&還是用||要考慮好。
這里如果爆破的話,就把這里的brfalse.s改為brtrue.s就可以了。
 

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

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


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

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

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


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

現(xiàn)在再去運(yùn)行一下待破解的程序,點(diǎn)擊開始,軟件繼續(xù)抽獎(jiǎng),不再彈出注冊提示窗口,說明破解完成。
 

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



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

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

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 日韩av无码免费播放 | 中文字幕无码人妻AAA片| 午夜寂寞视频无码专区| 日韩人妻无码免费视频一区二区三区| 亚洲国产一二三精品无码| 亚洲av无码专区在线电影| 国产成人AV一区二区三区无码| 日韩av片无码一区二区不卡电影 | 亚洲精品无码专区久久久 | 亚洲av无码电影网| 亚洲A∨无码一区二区三区| 久久人妻少妇嫩草AV无码蜜桃| 精品无码AV无码免费专区| 成人年无码AV片在线观看| 色综合久久无码中文字幕| 无码国产精品一区二区免费3p| 一区二区三区无码高清视频| 日韩aⅴ人妻无码一区二区| 亚洲AV成人无码天堂| 无码国产色欲XXXXX视频| 13小箩利洗澡无码视频网站免费 | 天堂Av无码Av一区二区三区| 日韩乱码人妻无码系列中文字幕| 人妻少妇乱子伦无码专区| 性色av无码不卡中文字幕| WWW久久无码天堂MV| 亚州AV综合色区无码一区| 2021无码最新国产在线观看| 999久久久无码国产精品| 亚洲成AV人在线播放无码| 国产成人精品无码一区二区三区| 久久午夜无码鲁丝片午夜精品| 无码A级毛片日韩精品| 成人年无码AV片在线观看| 亚洲人成无码网WWW| 成年午夜无码av片在线观看| 狠狠躁狠狠爱免费视频无码 | 久久美利坚合众国AV无码| 成人免费一区二区无码视频| 国产av无码专区亚洲av毛片搜| 特级无码毛片免费视频|