錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
【深入理解AES】山西省首屆大學生信息安全技能大賽--價值200分的逆向

作者: skywilling  日期:2017-06-24 15:46:24   來源: 本站整理

0x00前言
一直以來都在研究Android的逆向,最近才開始研究PE逆向。這是第一次發(fā)關(guān)于PE逆向的帖子,所以有什么不妥或錯誤之處,還請壇友糾正。5月份,山西省舉辦了首屆大學生信息安全技能大賽--個人賽(借助i春秋平臺),本人有幸得到了本次大賽中唯一的一道逆向題目(價值200分,屬于中級題目)。本文以該題目作為研究對象(題目會在文章末尾的附件給出),下面正式開始題目的初探。。。
0x01初探
當?shù)玫竭@個題目之后,我們需要先了解該題目類型,下面是我得到的題目屬性截圖:
 
顯然這是一個windows平臺上面的題目,接下來我們看一下這個CrackMe的運行效果
 
這里是在cmd中運行的,這里要說一下的是,如果直接雙擊運行的話,在輸入答案之后,程序就會直接退出,看不見“回答錯誤!!!”這個信息,所以我們需要在cmd中運行,才能看到輸入答案后的結(jié)果。
明白了運行的效果,我們接下來看一下,這個CrackMe有沒有加殼,以及使用了哪些加密算法(看了官方的writeup之后,才知道
PEID可以查出來)
  
通過PEID查殼,我們可以看出,該CM沒有加殼。而且借助PEID的插件,我們也可以看出來該CM使用了MD5和Rijndael(AES)加密算法。
0x02分析加密流程
分析完了CM加殼和加密情況之后,我們正式開始CM的調(diào)試之旅。
 
通過動態(tài)靜態(tài)分析,我們在這里看到了MD5加密的特征數(shù)。
 
F5我們進一步分析,發(fā)現(xiàn)該CM對前8字節(jié)進行MD5加密(不太熟悉MD5的話可以去補習一下)。
 
繼續(xù)分析,這里是對MD5加密后的密文進行比較,大概的流程如下:
 
這可以看作是一個解方程組的過程,最后解出的結(jié)果是:
a=0x4d2ea664 
b=0xd50fa3b6 
c=0x3f67863b 
d=0x9560e59b
那么MD5密文就是64a62e4db6a30fd53b86673f9be56095
因為MD5加密是不可逆的,也就是說MD5加密是沒有解密算法的,這里就需要我們借助在線的MD5解密平臺了。
 
通過在線解密,我們看到明文是ichunqiu,接下來,我們繼續(xù)分析。
 
繼續(xù)分析,我們發(fā)現(xiàn)這里對剩下的字符串長度進行了比較,可以看出來,如果剩下字符串長度不等于0x10就退出,所以這里的字符串長度一定是0x10。
 
在這里對剩下字符串判斷,是否是大寫字母,到這里我們可以得到“字符串是16字節(jié)的大寫字母字符串”這個結(jié)論。
 
往下分析,我們看到,在這里以FROMYWWAY作為密鑰,對16字節(jié)的字符串進行了維吉尼亞加密。
 
最后到了這里就是AES加密了,這里就不再具體看匯編代碼了,值得一提的是,這里用的AES加密模式CBC模式。
因為使用的是AES-CBC加密,所以需要一個IV,在這里,我們看到IV就是ichunqiu的MD5密文。
 
在這里是比較AES加密后的結(jié)果,比較數(shù)據(jù)是:
 
 
到這里加密流程就分行完了,接下來詳細對加密進行分析。
0x03加密詳解
通過對加密流程的分析,我們可以得到加密流程如下:
 
在這里我們主要要找的明文是全是大寫字母的16字節(jié)字符串,所以我們需要詳細分析一下AES加密流程。
 

[C] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
void func6(unsigned char*mi,unsigned char*key,unsigned char*md5) {
        int i;
        //輪密鑰加
        for (i = 0; i < 0x10; i++) {
                mi ^= key;
        }
        for (i = 1; i < 10;i++) {
                func4(mi,key,i);
                func5(mi); //列混淆
        }
        func4(mi,key,10);
        for (i = 0; i < 0x10; i++) {
                mi ^= md5;
        }
}


[C] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void func4(unsigned char*mi,unsigned char*key,int k) {
        int i, j;
        unsigned char a, b;
        unsigned char *c,*d;
        //向下列移位
        /*
        state’[j] = state[(4+i-j)%4][j]
        */
        a = mi[9];
        b = mi[0xD];
        mi[0xD] = a;
        a = mi[5];
        mi[9] = a;
        a = mi[1];
        mi[5] = a;
        a = mi[0xA];
        mi[1] = b;
        b = mi[2];
        mi[2] = a;
        a = mi[0xE];
        mi[0xA] = b;
        b = mi[6];
        mi[6] = a;
        a = mi[7];
        mi[0xE] = b;
        b = mi[3];
        mi[3] = a;
        a = mi[0xB];
        mi[7] = a;
        a = mi[0xF];
        mi[0xB] = a;
        mi[0xF] = b;
        //字節(jié)替換
        d = mi;
        for (i = 0; i < 4;i++) {
                c = d;
                for (j = 0; j < 4;j++) {
                        a = *c;
                        c += 4;
                        a=table3[a];
                        *(c - 4) = a;
                }
                d++;
        }
        //輪密鑰加
        for (i = 0; i < 0x10; i++) {
                mi ^= *(key-0x10*k+i);
        }
}


這就是我分析出來的AES加密流程代碼,大致分為以下幾個流程:
1.密鑰擴展
2.10輪加密變換
3.矩陣行列互換
 
通過對標準AES的加密流程的分析,我們來分析一下,CM用的AES加密流程是什么樣的?
根據(jù)我編寫的加密代碼,AES的加密流程是:
1.輪密鑰加
2.(向下列移位,字節(jié)替代,列混淆)9輪加密
3.向下列移位,字節(jié)替代
4.異或MD5
通過比較,我們發(fā)現(xiàn)這里的AES加密過程事實上是一個標準的AES解密過程

但是如果我們足夠細心,還可以發(fā)現(xiàn)一處不同之處,明明在標準的AES加密解密過程中,進行的是行移位,但是在CM中卻是列移位。按我的理解是,因為在最后進行了矩陣的行列互換導致的吧,這一點我依然持保留意見。
詳細分析了加密流程,寫出解密代碼就簡單多了。加解密代碼我都會在附件中給出。
0x04結(jié)語
 
最后以成功的效果圖作為結(jié)尾。
附件: http://pan.baidu.com/s/1mi3beeG 密碼: 6xjf
版權(quán)聲明:允許轉(zhuǎn)載,但是一定要注明出處。



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

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

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 最新中文字幕AV无码不卡| 日韩精品无码一区二区三区四区| 久久精品中文字幕无码| 色综合久久中文字幕无码| 久久久久精品国产亚洲AV无码| 国产成人无码av在线播放不卡 | 精品无码中出一区二区| 国产V亚洲V天堂A无码| 免费看无码自慰一区二区| 国产精品无码A∨精品影院| 无码天堂亚洲国产AV| 久久久久精品国产亚洲AV无码| 免费无码作爱视频| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 免费无码A片一区二三区| 久久老子午夜精品无码| 中文无码日韩欧免费视频| 免费人成无码大片在线观看| 无码乱肉视频免费大全合集| 无码人妻精品一区二区三区夜夜嗨| 亚洲无码精品浪潮| 亚洲国产精品成人AV无码久久综合影院 | 亚洲午夜福利AV一区二区无码| 国产精品无码一二区免费 | 亚洲av无码不卡私人影院| 亚洲av无码专区青青草原| 99久久无码一区人妻a黑| 蜜桃成人无码区免费视频网站| 国产精品无码av在线播放| 亚洲AV永久无码精品成人| 无套内射在线无码播放| 午夜不卡久久精品无码免费| 亚洲精品色午夜无码专区日韩 | 亚洲日韩精品A∨片无码加勒比| 无码精品一区二区三区在线| 久久久久亚洲AV成人无码| 久久无码人妻一区二区三区 | 成人免费无码大片a毛片软件| 亚洲AV无码AV吞精久久| 少妇仑乱A毛片无码| 人妻无码aⅴ不卡中文字幕|