標題: 程序自校驗設計思路 [打印本頁]
作者: liuyuxi 時間: 2015-1-11 00:30
標題: 程序自校驗設計思路
這個設計思路是小凡經過“千辛萬苦、苦口婆心”的解釋,我才明白的 ,覺得真的很不錯!我總結了一下,寫下來
首先在程序里面預置一個放 MD5 的數組變量 初始化為 16 個 A
編譯好后,把那個程序 邏輯上分為三份 :
第一份為 那 16 個 A 前面的數據
第二份為 那 16 個 A
第三份為 16 個 A 后面 的數據
用 MD5 計算 第一份 和 第三份的 md5 使其相加 再進行一次 md5 加密 得到 一個新的L md5 值
將這個新的L md5 寫入到第二份中 ~~ 也就是填充那 16 個 A ,供程序自判斷
在程序執行前 我們先將 md5 (第一份 md5 + 第二份 md5 ) = 新的L md5 用 C32 修改 那 16 個 A 為真正的L md5
程序執行流程:
1, 根據 16 個 A ( md5 )計算第一份的偏移地址
16 個 A ( md5 )為第二份偏移地址( 16 個字節) // 這份數據最后由我們外部修改為真正的Lmd5
3, 根據 16 個 A ( md5 )計算第三份的便宜地址
4, 讀取 第一份數據 計算其 Amd5
5, 讀取第三分數據 計算其 Cmd5
6, 將第一份 Amd5 與 第三份 Cmd5 相加 后再次進行 MD5 加密 得到新的 Lmd5
7, 讀取第二份數據
8, 將 Lmd5 與 第二份數據進行比較 相等則程序完整未被修改 不相等則認為程序被修改過
這樣分的好處就是,我們從外部只修改第二份數據 md5 因為我們并沒有計算這份數據的 MD5 所以,它怎么修改 都不會影響到 第一、三份的加密后的 Lmd5 當然,因為我們事先并不知道Lmd5 是多少,所以預置的在第二份數據中的 md5 可以隨便寫,只是為了方便用 C32 定位和程序自身定位,然后我們將計算 得到的 Lmd5 用 C32 寫入覆蓋到第二份數據中(也就是那十六個A) 這樣,就能和程序自己計算的Lmd5 與第二份數據相等。程序任意字節被修改, Lmd5 就發生會變化,那么它們就不會相等。達到修改任意一字節都能檢測出來!
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
成人黄在线观看
|
热久久久久
|
蜜臀久久99精品久久久久野外
|
91精品国产一区二区三区
|
91视频在线
|
污免费网站
|
国产成人91
|
欧美成人在线网站
|
久久久精彩视频
|
黄色免费观看
|
国产精品国产自产拍高清
|
狠狠草视频
|
91视频免费在观看
|
免费观看av
|
h漫在线观看
|
成人欧美一区二区三区在线播放
|
超碰在线播|
久久久久国产一区二区
|
天堂素人约啪
|
欧美日韩综合一区
|
综合久久综合久久
|
日韩激情一区
|
久久国产精品视频
|
一区二区三区视频播放
|
亚洲精品乱码8久久久久久日本
|
中文字幕人成人
|
国产欧美一区二区三区日本久久久
|
亚洲欧美精品久久
|
亚洲一区二区在线播放
|
wwwsihu|
国产日韩欧美一区二区
|
男人影音|
成人精品国产一区二区4080
|
国产激情91久久精品导航
|
欧美a级网站
|
国产激情91久久精品导航
|
中国一级特黄毛片大片
|
国产精品我不卡
|
aa级毛片毛片免费观看久
|
亚洲精品一区二区三区蜜桃久
|
成人精品一区二区三区
|