序列号分析

软件分析

程序下载

crackme_4stz

1

wangzhiyuyeshou

首先打开看看,发现就两个文本框,其他什么都没有,连按钮都没有,此时猜测这就是程序一直在后台匹配字符,比对结果,,如果比对相同,则会跳出成功之类的东西来。

2

od加载进来,运行。
wangzhiyuyeshou
现在这个程序,有两种情况:
一、Nombre和Codigo都是特定的,也就是说输入的两个都要正确,才能正确。
二、Nombre和Codigo是跟着变化的,也就是如果输入不同的Nombre,那么Codigo也是不相同的。

这两中情况,都不影响我随便输入字符在Nombre框中。所以我输入个“wang”在Nombre框中,然后断电在translatemessage函数处,如下图所示:
①、搜索当前模块中所有的函数
wangzhiyuyeshou
②、找到translatemessage,设置断点
wangzhiyuyeshou
③、点击b,查看断点
wangzhiyuyeshou
双击分别进去看看,我根据情况删掉了上面那个jmp,很明显它是个跳转。

为什么要断在translatemessage函数处?因为这个函数就是将虚拟键消息转换为字符消息,键盘输入的消息,是要过这个函数的。

点击程序,输入一个8(我输入的小键盘的数字8),查看堆栈,如下图所示:
wangzhiyuyeshou
Key=UK_NUMPAD8,也就是小键盘的数字8。

3

使用内存的跟踪法

①、删掉所有的断点,重新加载,并且运行,输入wang,和9876(随便按的)。
wangzhiyuyeshou
②、点击od的m,右击查找“9876”,如下所示,总共找到两处:
wangzhiyuyeshou
wangzhiyuyeshou

③、第一处设置内存访问断点,点进去,f8运行了一下,发现好像也是拷贝的过程,所以我跟不住。。。(没耐心)
第二处设置内存访问断点,一按F8,输入5,就在堆栈中发现类似答案的字符串,再输入一次,就可以在寄存器中查看到,我输入的987654确实在和这个字符串比较,如下图:wangzhiyuyeshou
wangzhiyuyeshou

④、重新加载这个程序,输入这个是不是序列号,果然没错
wangzhiyuyeshou

猜你喜欢

转载自blog.csdn.net/wangzhiyu12/article/details/110814524