ollydebug实战-破解验证密码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014105987/article/details/81040622
  • 测试环境

  1. WIN10(64位)
  2. VS2017
  3. ollydebug吾爱破解版
  • 待破解程序
  1. Project1.exe(32位)

  • 打开VS2017的工程查看待破解程序的源码


可以看到,这是一个简单的判断程序。

程序运行时提示输入密码,输入字符串"mima"才能提示"密码正确",否则提示"密码错误"

打开ollydebug吾爱破解版查看程序汇编代码(打开待破解程序后会自动弹出一个什么都不显示的黑控制台),然后查找提示的字符串(插件->中文搜索引擎->搜索ASCII)


出现程序提示的字符串


双击"密码正确",自动弹到对应的汇编代码处。


向上寻溯至je(即jump equal)上面(因为要绕过判断,就得修改判断之前的代码)的cmp处(即compare比较)

双击cmp->然后填入修改后的代码->点击汇编


点击运行按钮


破解步骤已经完成,下面测试破解效果。在弹出的黑色控制台窗口处输入任意字符串,可以看到都提示密码正确


  • 破解中的关键汇编指令
  1. jmp(jump)跳往指定地址执行
  2. cmp(compare)比较
  3. je(jump equal)等于就跳转
  4. jne(jump not equal)不等于就跳转

  • 附上测试所用程序的源码
#include<stdio.h>
#include<conio.h>
#include<string.h>
using namespace std;
int main(void)
{
	char c[20];
	char p[] = "mima";
	printf("请输入密码:\n");
	scanf_s("%s", &c);
	if (!strcmp(c, p))
	{
		printf("密码正确\n");
	}
	else
	{
		printf("密码错误\n");
	}
	_getch();
}

展开阅读全文

没有更多推荐了,返回首页