菜鸟笔记#2.获取注册码
【实验目的】
1) 掌握利用查找字符串的方法下断点追出软件内的注册码
【实验原理】
1) 利用软件登录时,提供的关键字,找到关键CALL下断点,单步调试追出注册码。
【实验环境】
工具:OllyDBG
软件:C:\software\20.获得注册码\Remove Nag.exe
【实验步骤】
一、了解软件验证机制
1.1 运行Remove Nag.exe软件,在用户名和密码栏中输入任意数值,单击“登录”按钮。如图1所示
1.2 弹出关键字提示对话框,记录下关键字“Name / Code mis-match. Try again.”。 如图2所示
二、利用PEID查壳
2.1 进入软件目录,选择目标软件,右键发送到PEID,进行查壳。如图3所示
2.2 PEID软件提示无壳。如图4所示
三、利用OllyDBG程序暴力破解软件
3.1 将Remove Nag.exe载入OllyDBG程序。如图5所示
3.2 单击反汇编窗口,右键菜单选择“中文搜索引擎”->”智能搜索”。 如图6所示
3.3 在弹出字符串界面,在字符串对话框中发现了“Name / Code mis-match. Try again.”。双击这行,跳转到反汇编窗口对应的那行。如图7所示
3.4 向上查找关键跳转,接着向上找到关键CALL,按F2下断点。如图8所示
3.5 单击工具栏中的“运行”按钮,软件登录界面输入帐号和密码(输入值为任意,因为要观察软件在输入错误的帐号和密码的情况下,这个关键CALL是否会实现),发现跳转实现(红色代表实现跳转)。如图9所示
3.6 程序在关键CALL处暂停,按F7进入CALL函数中查找序列号。如图10所示
3.7 按F8快捷键,单步跟踪,直到找到对应的注册码(E8AE81EBA17C4551CB123FFCA919B5D7)。如图11所示
3.8 把对应的用户名111111和密码E8AE81EBA17C4551CB123FFCA919B5D7输入软件,注册成功。如图12所示
Q1.关于这个实验似乎Code是有一个注册码算法,所以最后F8追踪出来的注册码可能不是E8AE81EBA17C4551CB123FFCA919B5D7。
[?]Q2.除了看call以外,这个实验可以暴力破解吗?根据实验,最后程序崩溃0.0。why?