當前位置:首頁 » 操作系統 » v7演算法礦機

v7演算法礦機

發布時間: 2023-11-01 15:38:16

『壹』 招新——第一次嘗試破解tea演算法

     物拿正      開始接觸逆向分析時,入門級別的一道題目,是一個師兄寫的考核題《sotired》,嘗試著破解了下,以下是具體的過程。

1、雙擊發現打不開,應該是linux系統下的文件(事實證明確實如此,我在虛擬機那裡驗證了一下,隨便輸入字元串,得到的答案是sorry~,給人crakeme的感覺,哈哈)

2、使用反匯編工具ida64位,將文件拖進去,找到main函數,使用F5大法,得到下面的界面:

看到sorry~和wow!congratulation!的字元串,可以推斷出有字元串的對比,看到if語句,沒錯就是它了,看來temp[k]裡面有我們想要的東西(用於匹配比較的正確密文)點進去,得到

這里利用一個小插件lazyida,哈哈哈(我比較懶),得到密文,

在這里需要聲明下,因為最後讀出來的那個0x00111885B有誤(lazyida的原因),其實是0x32111885B才對,所以是 0x572CB9C1, 0x73A6EB63, 0x069E6A55, 0x818E33D9, 0x7ED0A862, 0x3211885B,這些16進制的數就是密文啦!有了密文,我們要破解它,就需要找密鑰啦,回去看函數

想像下,用戶輸入一組字元串,for循環了3次,atoui函數猜測應該是某種轉換函數,點進去

果然是移位加密轉換,結果是int 型,所以v11[6]的字元數據全部被轉換了數字,繼續往下

又有3次循環,看到encipher函數應該是加密函數來的,然後傳遞了兩個參數,一個是轉化後的v11,另一個v7,這里就可以懷疑了,v7應該是密鑰,而且用了引用,難道是地址嗎?很奇怪,點進去v7,得到

這里又要懷疑了,前面4個都是?一個數字有4個數據,感覺很像數組的樣子,於是嘗試一波

轉換為數組,然後F5大法刷新下!得到

看來我們的推斷是正敏薯確的,v7是一個數組,裡面的數據應該是密鑰了!到此,我們成功地拿到了密文和密鑰了,接下來就是解密罩悔了,解密前需要知道是怎麼加密的,回到剛剛的encipher函數,進去

看到這里有人可能要很激動了,這個演算法不就是tea演算法嗎?!(沒錯,雖然我一開始也不知道,於是我去谷歌了一波!)

tea演算法就是把密文結合密鑰進行移位再異或的運算,總共進行32輪。解密則是反過來求解,不過需要先算出delta的值,即9e3779b9*32後得到13c6ef3720,明顯溢出了(手賤算了下,溢出。tea演算法把溢出的忽略了,emmmm,我也不太懂其中的原因,能用先用著,哈哈哈),於是乎,可以寫腳本了,打開c++,寫入腳本

我們的密文和密鑰修改好後,因為有密文有6個16進制的數,所以解密3次,得到結果

好啦,這就是我們的flag了,但是看不懂是吧,沒關系,去轉換下,谷歌走起!

大家記得把空格消除,然後把它和在一起轉化,好啦,虛擬機linux操作系統打開,文件打開,輸入flag,得到的就是WOw!congratulation!

以上便是我花了一個下午整理出來的一個逆向題目,希望對大家有幫助,也希望能多多交流哦,嘻嘻~

『貳』 求出最短路徑,要過程,用Dijkstra演算法。。。

從v1開始遍歷
v2 = 2;
v3 = 5;
v2較小所以跳到v2
v3 = 4;

v4 = 6;
v5 = 8;
v3較小所以跳到v3
v4 = 5;
v6 = 7;
v4較小所以跳到v4
v6 = 6;
v7 = 9;
v6較小所以跳到v6
v7 = 8;

所以最後結果v1 -> v7最短路徑為v1->v2->v3->v4->v6->v7,最短路徑長度為8

熱點內容
shell腳本調用sql腳本 發布:2025-01-22 20:53:51 瀏覽:427
解壓洗浴 發布:2025-01-22 20:51:01 瀏覽:474
tplink雲伺服器 發布:2025-01-22 20:32:35 瀏覽:146
videots文件夾 發布:2025-01-22 20:31:40 瀏覽:312
apm編程 發布:2025-01-22 20:08:08 瀏覽:762
中乙資料庫 發布:2025-01-22 20:08:08 瀏覽:841
a8源碼網 發布:2025-01-22 20:06:42 瀏覽:181
新聞頭條源碼 發布:2025-01-22 20:06:37 瀏覽:917
社保卡的交易密碼怎麼修改密碼 發布:2025-01-22 20:05:09 瀏覽:693
如何把舊安卓機改造為游戲機 發布:2025-01-22 19:54:35 瀏覽:624