破解时的数据约束性和winhex操作失败

一 破解时的数据约束性


    此概念是+ORC提出的,只限于用明文比较注册码的情况。在大多数序列号保护的程序中,真正在注册码会于某个时刻出现在内存中,它出现的位置是不定的,但多数情况它会在一个范围之内,即存放用户输入序列号的内存地址正负90h的范围。其依据是,加密者在编程时经常要留意保护功能是否工作,从他的视角,他常需要在同一个Watch窗口能看到用户输入结果和真正密码,这二者会共同位于一个小的堆栈区域。

加密与解密 第三版,5.1.2节,根据此作一个试验;原文内容和目的是说明根据数据约束性,来找到密码的一种简单情形;

就是使用winhex的内存编辑工具,来在输入内容附近找到真正密码;下面来操作;

运行TraceMe;

winhex的内存编辑工具;

提示64位版本才能显示进程和模块的名称;

在winhex列出的进程找不到TraceMe;

按进程ID,24428,也winhex里也找不到TraceMe;

可能是版本问题;换成64位winhex,打开编辑内存工具;

还是找不到TraceMe.exe;不知啥情况;下回再搞;

二 在ollydbg中操作数据约束性

用ollydbg加载TraceMe.exe,运行;输入错误序列号,按 check 按钮出现错误提示;

按Alt+M打开内存窗口;

如图选中第一行,按 Ctrl+B,打开内存搜索输入框;输入刚才输入的内容;搜索;

定位到了刚才输入的34567878;然后在这附近前后晃一晃,看一看,找到真正的密码2470;

发布了475 篇原创文章 · 获赞 545 · 访问量 304万+

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/104644812