当前位置: 首页 > news >正文

新160个crackMe算法分析-41-crackme.2.exe

嘿嘿今天又来写博客了,对于这个程序我有有趣的发现,想获取程序,可以看前面几篇,我备注了出处
至于为什么会写关于这一个程序的博客,直接跳到41个,其实前面的程序我感觉没有啥可以值得记录的,有一些很简单,还有一些很无聊
也许你会觉得这个程序很无聊,很好破解,但是对于我而言,我实实在在的在这个程序上犯错了,所以就会有记录这一说

1.这个题目算法很一般

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
char strName[20];
char strKey[20];int main()
{printf("输入用户名: ");scanf("%s", strName);strKey[0] = strName[0] / 0xA;while (1){if (strKey[0] < 0xA) break;else {strKey[0] = strKey[0] / 0xA;}}strKey[1] = strName[2] / 0xA;while (1){if (strKey[1] < 0xA) break;else{strKey[1] = strKey[1] / 0xA;}}strKey[2] = strName[3] / 0xA;while (1){if (strKey[2] < 0xA) break;else{strKey[2] = strKey[2] / 0xA;}}strKey[3] = strName[4] / 0xA;while (1){if (strKey[3] < 0xA) break;else{strKey[3] = strKey[3] / 0xA;}}for (int i = 0; i < 4; i++){printf("%d ", strKey[i]);}return 0;
}

思路就是把用户名的第 1 3 4 5 位分别去除0xA取商 ,如果大于商,再次除0xA,直到商小于0xA,如果输入的是英文字母可能会出现商大于0xA的情况

2.通过程序和反汇编分析
这里面有一个switch结构值得注意
PixPin_2026-04-18_15-53-16
0x00437DD3这个位置每次进行完case的部分都会跳转到这里,但是根据右侧的Default 可以猜测它可能是default关键字的部分
举一个例子:

	int a = 0;scanf("%d", &a);switch (a){case 1:printf("1");break;case 2:printf("2");break;case 3:printf("3");break;case 4:printf("4");break;default:printf("输入错误!\n");break;}

在查资料前,我是这样写的,我们输入1,2,3,4可以看到打印的信息,输入大于4的数字会打印输入错误。这并不像程序里面都执行了default部分的代码,查完资料问了一下deepseek,我才知道有goto语句,以及完全忘记了
然后尝试还原了一下这个switch结构

int a = 0;	
scanf("%d", &a);
switch (a)
{case 1:printf("1");goto def_ault;case 2:printf("2");goto def_ault;case 3:printf("3");goto def_ault;case 4:printf("4");goto def_ault;def_ault:printf("QWQ");break;default:printf("输入错误!\n");break;
}

这样就可以实现执行default部分的内容,由于default是关键字,所以不能作为标签名,我这里直接换了一个def_ault,当我输入1,2,3,4时会打印对于的数字,除此之外还会打印颜文字QWQ
想了解goto的相关语法可以去查看:https://www.runoob.com/cprogramming/c-goto-statement.html

没见过的switch结构,浅浅的研究了一下,这个程序是DB写的,可能DB实现switch和C语言不大一样吧。

后日谈:其实我压根就没在意这个函数,以至于我在分析程序的时候完全不知道怎么做,在一个函数里面越陷越深,对于这种情况,应该换一个方向,败北:(

http://www.jsqmd.com/news/661582/

相关文章:

  • 终极Hubot-Slack适配器指南:5步快速构建智能Slack机器人
  • 揭秘PPTAgent:AI如何用反思式智能重构演示文稿制作范式
  • 为什么TinyEditor是学习前端开发的完美入门工具?
  • 2026年北京电子助视器/视障电脑/盲人电脑公司推荐:北京视源科技有限公司,为盲人和低视力人群提供全方位解决方案 - 品牌推荐官
  • 终极图像转3D神器:用ImageToSTL轻松实现照片立体化
  • 告别杂乱!Win10文件资源管理器‘快速访问’与‘最近浏览’的保姆级清理与优化指南
  • Dubbo-samples高级特性:服务分组、版本控制与负载均衡
  • Cursor Free VIP:如何免费解锁Cursor AI的Pro功能?
  • 梳理安装快的列车接近预警系统选购要点和推荐品牌 - 工业推荐榜
  • OpenTelemetry Rust与Prometheus集成:实现高效指标监控的10个技巧
  • 大模型训练实战(5)——Ollama 为什么突然成了本地大模型部署的“万能入口”?一篇讲透原理、实战和边界
  • Everything Claude Code:Anthropic Hackathon 冠军的 AI 代理优化之道
  • 2026年4月安徽护坡网厂家**评测:五大服务商深度对比与选购指南 - 2026年企业推荐榜
  • 图像插值核实战解析:从Nearest到Lanczos的算法演进与性能对比
  • Fisher信息量实战:用Python验证Cramér-Rao下界与MLE效率
  • Orhanerday Open-AI实战:10个ChatGPT流式传输应用场景详解
  • 2026年4月新消息:临汾企业代理记账机构深度测评与官方联系方式推荐 - 2026年企业推荐榜
  • 陶瓷艺术家江国林:坭兴陶非遗传承路上的匠心筑梦者 - 博客湾
  • Mac磁盘融合后重装系统,再用启动转换助理装Win10,保姆级避坑指南
  • Vue项目全屏功能实战:从screenfull基础应用到高级场景封装
  • QuickLook Video:让macOS原生支持50+视频格式的终极解决方案
  • 洛谷 P4694
  • Amlogic S9xxx系列设备Armbian系统深度解析与实战指南
  • 如何一键获取蓝奏云直链:告别繁琐下载流程的终极指南
  • 2026年优质内饰改装实力厂家大盘点,快来了解,内饰改装/真皮包覆/座椅升级,内饰改装品牌口碑推荐 - 品牌推荐师
  • 在Firefly RK3588J上,用OpenCL给OpenCV图像处理加速,CPU占用率直降10%
  • 【万字文档+PPT+源码】基于springboot+vue在线学习平台-计算机专业项目设计分享
  • 保姆级教程:用OpenCV搞定鱼眼双目相机的标定与测距(附完整C++代码)
  • Node-Cache 测试策略与覆盖率:确保缓存可靠性的完整方法
  • 从冲激响应到频响曲线:如何用系统思维理解信号处理