网络攻防技术——MD5碰撞试验
一、題目
本次實驗主要是加深大家對MD5碰撞及其原理的理解,使用SEED實驗環境中的工具及編程語言,完成以下任務:
a)使用md5collgen生成兩個MD5值相同的文件,并利用bless十六進制編輯器查看輸出的兩個文件,描述你觀察到的情況;
b)參考Lab3_task2.c的代碼,生成兩個MD5值相同但輸出不同的兩個可執行文件。
c)參考Lab3_task3.c的代碼,生成兩個MD5值相同但代碼行為不相同的可執行文件。
d)回答問題:通過上面的實驗,請解釋為什么可以做到不同行為的兩個可執行文件具有相同的MD5值?
二、過程
a)
1)使用md5collgen生成兩個MD5值相同的文件:
2)比較生成的兩個文件,可以看出生成的兩個文件內容不同,哈希值一樣。
3)利用bless編輯器查看兩文件,經觀察可得兩文件的前綴相同,文件內容有不同。通過分析md5collgen的原理可以明白形成這一現象原因。從prifix.txt中取前綴,若前綴不是64的倍數,則用零填充。md5collgen為兩個輸出文件生成128字節的內容,這兩個輸出文件就是在這128字節中存在部分差異。
b)生成兩個MD5值相同但輸出不同的兩個可執行文件。
1)構造same.c代碼:
2)編譯執行后打開bless編輯器定位字符串存儲的位置。
3)截取以構造兩個md5相同文件。
4)分別運行,得到結果如圖:
5)可以得到這兩個文件的輸出結果是不同的但md5值相同。
c)生成兩個MD5值相同但代碼行為不相同的可執行文件。
1)構造origin.c代碼:
2)編譯執行后打開bless編輯器定位字符串存儲的位置。
3)構造兩個md5相同文件。
4)分別運行prefix1文件和prefix2文件,可以看到文件運行結果不同但md5相同。
d)為什么可以做到不同行為的兩個可執行文件具有相同的MD5值?
Md5collgen工具可以生成兩個前綴相同的文件,且md5相同的文件加上相同的后綴后md5仍相同。
總結
以上是生活随笔為你收集整理的网络攻防技术——MD5碰撞试验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows查看系统补丁
- 下一篇: mapi java_Exchange 2