一個注冊機(jī)的破解

在分析報告的開始之前,這是我的MachineCode以及調(diào)試時采用的SerialNumber

一固翰、 采用DestroyWindow方式進(jìn)行破解。

此時MachineCode為9385C461

輸入序列號12345678

點擊Register,出現(xiàn)彈窗Bad



Ctrl+G惠昔,輸入DestroyWindow.


,此處設(shè)置一個斷點挑势。

點擊Ok镇防。

此時來到


用F8,回到上一次函數(shù)調(diào)用潮饱。此時來到這里



向上翻沒有發(fā)現(xiàn)什么特別的東西来氧。于是再回到上一次函數(shù)調(diào)用。來到這里


我先前調(diào)用了004A4068香拉,是破壞的啦扬。前面發(fā)現(xiàn)了一個je,并且跳開了中間的函數(shù)凫碌。有點可疑扑毡,于是在je前設(shè)置斷點。

再次注冊盛险,發(fā)現(xiàn)依舊彈出了Bad瞄摊⊙郑可見這個函數(shù)并沒有什么特別的東西,還是在判斷失敗以后换帜。所以直接離開這一塊內(nèi)容楔壤。再回到上級調(diào)用。此時來到


發(fā)現(xiàn)上面并沒有跳開什么地方惯驼,于是繼續(xù)回到上一級蹲嚣。此時來到



此時這個地方相當(dāng)可疑。注意到直接跳開了我們斷開的函數(shù)跳座。

在這里我再次設(shè)置了一個斷點端铛,跑起來之后發(fā)現(xiàn)還是產(chǎn)生了錯誤,故繼續(xù)下一級調(diào)用疲眷,此時來到


再回到上一級禾蚕,來到



向上翻發(fā)現(xiàn)可疑點


image.png

發(fā)現(xiàn)jump跳開了函數(shù)。

設(shè)下斷點狂丝。點擊注冊换淆,發(fā)現(xiàn)沒有彈出Bad,而是挺住了几颜。同時倍试,我令下處的跳轉(zhuǎn)不實現(xiàn),點擊run蛋哭。發(fā)現(xiàn)彈出了Good


image.png

image.png

那么我們就追究這個函數(shù)跳轉(zhuǎn)的原因县习。觀察



此時有


這個值為軟盤指紋的值。

那么對函數(shù)上面代碼進(jìn)行分析谆趾。分析結(jié)果如下躁愿。


首先我們看到最后的一個異或

也就是[ebp-3C]^0x13572468 = Machine Code

同時我也查看了此時的ebp-3C指向的數(shù)據(jù)


第一步的逆向、

[ebp-3C] = Machine Code ^ 0x13572468.

代碼如下


緊接著向上看沪蓬,


關(guān)注到上面的這一系列代碼彤钟。運行到004017BA,下面窗口定位到[ebp-3C]


image.png

發(fā)現(xiàn)如下情況



跷叉,也就是這一串似乎與我的12345678有點相像逸雹。

基于這個情況,我再向上找云挟,找到了12345678的完整情況梆砸。


image.png

當(dāng)我運行到004017A4時,ebp-3C處的數(shù)據(jù)如下


也就是說园欣,在這中間帖世,發(fā)生了什么事情,使得這一串發(fā)生了改變俊庇。但是有意思的是狮暑,123456并沒有發(fā)生改變。

但是我們先前(在第一步的逆向之前)發(fā)現(xiàn)這一串?dāng)?shù)字是發(fā)生改變了的辉饱。

那么分析這call函數(shù)以后的代碼搬男。


此時,ebp指向原來78的位置彭沼,ebp+1指向56的位置缔逛。依次類推

按F7,56的情況發(fā)生了改變姓惑。

很容易可以明白褐奴,56的改變,發(fā)生于上一個函數(shù)于毙。

此時我們對我圖中倆紅色之間的代碼分析敦冬。

分析結(jié)果是,它將原來1234的順序改為了1324唯沮。

由此我們可以得到

第二步的逆向脖旱、

先獲得result的每一個位吼鳞。取出其相應(yīng)的十六進(jìn)制表示帕识,歸到原來的位置中。


緊接著我們來分析56的情況沙咏。

進(jìn)入函數(shù)


F7過后币旧,在此時這個點時践险,eax出現(xiàn)了我們想要的56


此時情況如下

ecx = 8->(減去edx的2)à6->(edx賦值2)à2

ebx = eax(為56)向左移位6個。

eax向右移位2吹菱。

此處的2來自調(diào)用函數(shù)前的

image.png

此時萬分注意巍虫,<u>有一個非非非常重要的點</u>

算術(shù)右移。

然后對結(jié)果進(jìn)行或毁葱。

分析結(jié)果如下:

56位所代表的的8位中

x1x2x3x4y1y2y3y4

à y3y4x1x2x3x4y1y2

但是垫言,y3y4并不一定是y3y4基于算術(shù)右移的可能性,有可能直接變成了11倾剿。故此位置有可能是任何值筷频,這取決于X1的值,因為數(shù)量不多前痘,就不分析X1了凛捏,直接給出所有可能結(jié)果。

第三步的逆向芹缔、

逆向坯癣,將其規(guī)規(guī)矩矩得到

y3y4x1x2x3x4y1y2

再將其進(jìn)行


如果與11進(jìn)行或的話,那么可以得到4個不同的結(jié)果最欠。

如果與00進(jìn)行或的話示罗,那么可以password就是作為結(jié)果惩猫。(其他的意義不大)

———————————————————————————————————————

接下來分析78的情況。

傳入ebp-3C地址蚜点,還有push1轧房,以及al是78的得到。


image.png

緊接著我們來到了函數(shù)內(nèi)部绍绘。


分析代碼:

同樣注意到


image.png

此處分析結(jié)果是

x1x2x3x4y1y2y3y4

à x2x3x4y1y2y3y4x1

有可能是跟1111111 x1進(jìn)行或的奶镶。

假如和1111111x1進(jìn)行或的話,就依次進(jìn)行陪拘。密碼有2^7種厂镇。我的代碼不作分析。(羅列所有可能情況)左刽,實際取決于x1的結(jié)果捺信。

所以得到

第四步的逆向、

image.png

#include <stdio.h>

#include <stdlib.h>

int main()

{

 unsigned temp=0, password=0;

 unsigned result=0;

 unsigned Machine_Code=0;

 unsigned ch1=0, ch2=0, ch3=0, ch4=0;

 printf("請輸入Machine Code\n");

 scanf("%xu", &Machine_Code);

 result = Machine_Code^(0x13572468);

 ch4 = result & (0x0FF);

 ch3 = (result>>8) & (0x0FF);

 ch2 = (result>>16) & (0x0FF);//24狀態(tài)

 ch1 = (result>>24) & (0x0FF);//13狀態(tài)

 password |= ((ch1&0x0F)<<20);//第三個十六進(jìn)制歸位

 password |= ( ((ch1&0x0F0)>>4) << 28);//第一個十六進(jìn)制歸位

 password |= ((ch2&0x0F)<<16);//第四個十六進(jìn)制歸位

 password |= ( ((ch2&0x0F0)>>4) << 24);//第二個十六進(jìn)制歸位

 unsigned password11 = 0;

 unsigned password21 = 0;

 unsigned password22 = 0;

 unsigned password23 = 0;

 unsigned password24 = 0;

 password |= (ch4>>1);//最后兩位十六進(jìn)制右移一位

 password |= (ch4&0x1)<<7;

/*

有兩種情況欠痴,左移后把1弄沒了残黑,那么右移有兩種情況,+0x80或者不加

*/

 password |= ((ch3>>6) + ( ((ch3&0x3F) << 2)) )<<8;//56兩位十六進(jìn)制斋否,的78位放在12位上梨水。

 password21 = (password&0x0FFFFFFFF);

 password22 = (password&0x0FFFFBFFF);

 password23 = (password&0x0FFFF3FFF);

 password24 = (password&0x0FFFF7FFF);

/*

如果和00或的話,原來的就是結(jié)果茵臭。

如果與11或的話疫诽,那兩位必然就為11

此時有四個可能

*/   

 printf("注冊碼:Password = %x\n", password);

 printf("其他可能也OK的注冊碼如下:\n");

 /*printf("Password 1 = %x\n", password21);

 printf("Password 2 = %x\n", password22);

 printf("Password 3 = %x\n", password23);

 printf("Password 4 = %x\n", password24);

*/

 system("pause");

}

幾個要點:

一、 在算術(shù)移位的情況下旦委,可能出現(xiàn)并行的注冊碼(多個注冊碼都可以成功)奇徒。

我在代碼中列出了一種類型。

二缨硝、跟蹤分析的時候其實我還跟蹤了關(guān)于將字符串轉(zhuǎn)換成為普通的字符摩钙。本來以為是字符串比較,后來才發(fā)現(xiàn)是直接轉(zhuǎn)化成十六位進(jìn)制的比較查辩。

三胖笛、找到調(diào)用的函數(shù)要逐個分析,不要一棍子打死宜岛。(這里有兩種分析類型长踊,險些出了岔子)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萍倡,一起剝皮案震驚了整個濱河市身弊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖阱佛,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帖汞,死亡現(xiàn)場離奇詭異,居然都是意外死亡凑术,警方通過查閱死者的電腦和手機(jī)涨冀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麦萤,“玉大人,你說我怎么就攤上這事扁眯∽秤ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵姻檀,是天一觀的道長命满。 經(jīng)常有香客問我,道長绣版,這世上最難降的妖魔是什么胶台? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮杂抽,結(jié)果婚禮上诈唬,老公的妹妹穿的比我還像新娘。我一直安慰自己缩麸,他們只是感情好铸磅,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杭朱,像睡著了一般阅仔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弧械,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天八酒,我揣著相機(jī)與錄音,去河邊找鬼刃唐。 笑死羞迷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的画饥。 我是一名探鬼主播闭树,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荒澡!你這毒婦竟也來了报辱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碍现,沒想到半個月后幅疼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡昼接,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年爽篷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慢睡。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡逐工,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漂辐,到底是詐尸還是另有隱情泪喊,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布髓涯,位于F島的核電站袒啼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纬纪。R本人自食惡果不足惜蚓再,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望包各。 院中可真熱鬧摘仅,春花似錦、人聲如沸问畅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽按声。三九已至膳犹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間签则,已是汗流浹背须床。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留渐裂,地道東北人豺旬。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像柒凉,于是被迫代替她去往敵國和親族阅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 原文地址:C語言函數(shù)調(diào)用棧(一)C語言函數(shù)調(diào)用棧(二) 0 引言 程序的執(zhí)行過程可看作連續(xù)的函數(shù)調(diào)用膝捞。當(dāng)一個函數(shù)執(zhí)...
    小豬啊嗚閱讀 4,610評論 1 19
  • 第二節(jié)課學(xué)習(xí)了語流音變坦刀,聽下來發(fā)現(xiàn)自己是個普通話癡,我的普通話二級甲等大概是假的吧……在學(xué)校學(xué)習(xí)普通話時總是不以為...
    賴紫帆閱讀 190評論 0 0
  • 今天下午一放學(xué)接了女兒,剛剛回到家鲤遥,她黃阿姨領(lǐng)著小孫女來我家借幼兒園的被子沐寺。我問女兒可以嗎?她說:媽媽可以盖奈,我已經(jīng)...
    趙奕嘉閱讀 129評論 0 1
  • 最美的微笑 在生命最危難的時刻 在死神手中的時刻 像花兒一樣 透著花兒的清香 悄然開放 這...
    不錯嘛我的天梭表閱讀 234評論 0 0
  • 文/曉月輕霜 “嘟嘟”混坞,手機(jī)響起的時候我正窩在沙發(fā)里看一部喜劇,笑得肚子都疼了钢坦,聽到手機(jī)響究孕,邊笑邊伸手撈過放在茶幾...
    曉月輕霜閱讀 1,149評論 29 32