總的來(lái)說(shuō)千康,這是個(gè)非常簡(jiǎn)單的練習(xí)材料肮雨。第一種最快也是最先想到的猜欺,搜索字符串法。
輸入錯(cuò)誤的name和serial提示You Get Wrong和try again
那么OD加載程序吮龄。接著智能搜索
可以發(fā)現(xiàn)一個(gè)貌似正確提示和錯(cuò)誤提示的內(nèi)容俭茧。那么雙擊進(jìn)入You Get It
可以發(fā)現(xiàn)上面有個(gè)je跳轉(zhuǎn)從上面跳走了。那么nop掉就可以了漓帚。
那么再試試下斷點(diǎn)找key值吧母债。因?yàn)槌绦蚴莢b寫的,所以嘗試下vbaStrCmp這個(gè)函數(shù)斷點(diǎn)尝抖。雖然沒學(xué)過(guò)VB毡们,但這個(gè)猜測(cè)應(yīng)該是比較函數(shù)。
啟動(dòng)之后昧辽,輸入假碼衙熔。會(huì)斷下來(lái)。
接著F7步入搅荞,可以找到我們假碼和一個(gè)疑似真碼都push進(jìn)去红氯。
然后嘗試下真碼果然正確。
當(dāng)然你也可以一步一步f8跟蹤找碼咕痛,對(duì)于這個(gè)小程序也挺快的痢甘。
附上python破解代碼
#-*- coding:utf-8 -*-
import ctypes
def name(second):
? ? ? ?kernel32=ctypes.windll.LoadLibrary('kernel32.dll')
? ? ? ?PROCESS = kernel32.OpenProcess(2035711,0,second)
? ? ? ?new_info=kernel32.WriteProcessMemory
? ? ? ?buffer = ctypes.c_char_p("_")
? ? ? ?buffer.value='\x72\x72'
? ? ? ?new_info(PROCESS,4203915,buffer,2,0)
if __name__ == '__main__':
? ? ? ?second=input('process pid:')
? ? ? ?name(second)