這個題目太依賴日期格式了,只有yy/mm/dd格式的短日期才能通過驗證。
00402fd0 . e8 0de3ffff call ; 判斷輸入不為空
00402fd5 . 8bf0 mov esi, eax
00402fd7 . f7de neg esi
00402fd9 . 1bf6 sbb esi, esi
00402fdb . 46 inc esi
00402fdc . f7de neg esi
00402fde . ff75 dc push dword ptr [ebp-24]
00402fe1 . 68 10264000 push 00402610
00402fe6 . e8 f7e2ffff call ; 判斷輸入不為空
00402feb . f7d8 neg eax
00402fed . 1bc0 sbb eax, eax
00402fef . 40 inc eax
00402ff0 . f7d8 neg eax
00402ff2 . 66:0bf0 or si, ax
00402ff5 . ff75 d8 push dword ptr [ebp-28]
00402ff8 . 68 10264000 push 00402610
00402ffd . e8 e0e2ffff call ; 判斷輸入不為空
004030e9 . ff90 f8060000 call dword ptr [eax+6f8] ; 年份函式
004030ef . 8985 48ffffff mov dword ptr [ebp-b8], eax
004030f5 . 83bd 48ffffff>cmp dword ptr [ebp-b8], 0
004030fc . 7d 20 jge short 0040311e
004030fe . 68 f8060000 push 6f8
00403103 . 68 bc244000 push 004024bc
00403108 . ff75 08 push dword ptr [ebp+8]
0040310b . ffb5 48ffffff push dword ptr [ebp-b8]
00403111 . e8 c0e1ffff call 00403116 . 8985 10ffffff mov dword ptr [ebp-f0], eax
0040311c . eb 07 jmp short 00403125
0040311e > 83a5 10ffffff>and dword ptr [ebp-f0], 0
00403125 > 8b45 08 mov eax, dword ptr [ebp+8]
00403128 . 8b4d 08 mov ecx, dword ptr [ebp+8]
0040312b . 8b40 78 mov eax, dword ptr [eax+78] ; 返回的值當前年份
0040312e . 2b81 84000000 sub eax, dword ptr [ecx+84] ; 輸入的年份
00403134 . 0f80 b7020000 jo 004033f1
0040313a . 85c0 test eax, eax
0040313c . 75 46 jnz short 00403184 ; 關鍵跳
同理,剩下的是對月份和日期計算進行驗證
#include
intmain
(int argc ,
char
** ar**)
吾愛破解160個crackme之006
這個題目的原話在這裡 意思是將兩個button隱藏掉即可。其實我是挺想吐槽一下的 我們開啟pe檔案的資源管理器,發現如下結構 object ok tbutton left 24 top 16 width 113 height 41 caption ok enabled true taborder 0...
逆向破解之160個CrackMe 029
160 crackme 是比較適合新手學習逆向破解的crackme的乙個集合一共160個待逆向破解的程式 crackme 它們都是一些公開給別人嘗試破解的小程式,製作 crackme 的人可能是程式設計師,想測試一下自己的軟體保護技術,也可能是一位 cracker,想挑戰一下其它 cracker 的...
逆向破解之160個CrackMe 020
160 crackme 是比較適合新手學習逆向破解的crackme的乙個集合一共160個待逆向破解的程式 crackme 它們都是一些公開給別人嘗試破解的小程式,製作 crackme 的人可能是程式設計師,想測試一下自己的軟體保護技術,也可能是一位 cracker,想挑戰一下其它 cracker 的...