160个cracker me练习002

总的来说,这是个非常简单的练习材料。第一种最快也是最先想到的,搜索字符串法。

输入错误的name和serial提示You Get Wrong和try again

那么OD加载程序。接着智能搜索

可以发现一个貌似正确提示和错误提示的内容。那么双击进入You Get It

可以发现上面有个je跳转从上面跳走了。那么nop掉就可以了。

那么再试试下断点找key值吧。因为程序是vb写的,所以尝试下vbaStrCmp这个函数断点。虽然没学过VB,但这个猜测应该是比较函数。


启动之后,输入假码。会断下来。

接着F7步入,可以找到我们假码和一个疑似真码都push进去。

然后尝试下真码果然正确。

当然你也可以一步一步f8跟踪找码,对于这个小程序也挺快的。

附上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)

推荐阅读更多精彩内容