除了上次的序列號驗證以外,還有這種密鑰授權模式,需要密鑰文件授權才能打開文件;
老辦法,先拖進OD中動態分析再說:
然后F8進行調試這時候發現了一個條件跳轉函數jnz下面是說跳轉未實現,那我們發現上面有個Key.dat文件,應該是授權文件,但是我們沒有,我們可以嘗試跳轉,jnz條件是>>ZF=0,即修改值為1可以跳轉,我們這里可以匯編進行無條件跳轉,函數是(jmp):
然后繼續調試F8:,又發現一個跳轉函數jnz,按照老辦法對上面進行無條件跳轉:
繼續F8進行調試下面,又發現了一個跳轉函數jl,跳轉條件是SF!=ZF,即SF值不等於ZF是跳轉,順着函數紅線查看跳轉位置,指向了key文件無效,這說明我們不能跳轉,一跳轉就指向無效提示了,這時我們可以nop填充匯編;
然后繼續F8調試,又碰到je函數,不過看跳轉位置,不用修改,因為沒有指向無效key文件
繼續F8調試,又發現了jl跳轉函數,又一看位置,指向無效key文件,果斷nop填充;
然后繼續F8調試,發現了一個無條件跳轉函數jmp,我們看一下指向,這是正確的,即我們成功跳轉到授權成功畫面了:
全選上述修改進行保存為reverseMe1.exe:
然后測試一下;
原文件;
修改后的文件:
這就類似於補丁,通過修改文件來修改執行方式.