新160个crackme - 102-haggar-keyme1

运行分析

在这里插入图片描述

  • 用win7或win xp系统可以运行
  • 输入Serial,点击Check无反应

PE分析

在这里插入图片描述

  • ASM程序,32位,无壳

静态分析&动态调试

在这里插入图片描述

  • ida找到关键字符串

在这里插入图片描述

  • 在sub_401E6B处按x,返回上一步函数

在这里插入图片描述

  • 来到关键函数,静态分析逻辑如下:
  • 1、Serial长度为29
  • 2、Serial第6/12/18/24位为’-’
  • 3、有检测调试模式,需要patch调试判断(直接NOP)
  • 4、通过func_1、func_2、func_3、func_4、func_5检测Serial是否满足要求

在这里插入图片描述

  • 启动动态调试,在401CDB地址右键,点击Force jump强制跳转,绕过时间检测

在这里插入图片描述

  • 动调func_1,返回值需要为0,Serial前5位需满足上图计算公式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 分别对func_2~5进行分析,发现和func_1一样,分别判定了Serial每5位的条件

算法分析

Serial = [0] * 25
Serial[5] = '-'
Serial[11] = '-'
Serial[17] = '-'
Serial[23] = '-'def func_1(Serial):return (Serial[4]  * ( Serial[4] +  Serial[3] * (Serial[3] +  Serial[2] * (Serial[2] +  Serial[1] * (Serial[1] +  Serial[0]))))) ^ 0x31CF15A9;def func_2(Serial):return Serial[4] *(Serial[4] + Serial[3] * (Serial[3] +  Serial[2] * (Serial[2] +  Serial[1] * (Serial[1] +  Serial[0])))) - 680588896;def func_3(Serial):return Serial[4] *(Serial[4] +  Serial[3] * (Serial[3] +  Serial[2] * (Serial[2] +  Serial[1] * (Serial[1] +  Serial[0])))) - 742389200;def func_4(Serial):return Serial[4] * (Serial[4] + Serial[3]* (Serial[3]  + Serial[2]* (Serial[2]  + Serial[1] * (Serial[1] +  Serial[0])))) - (((Serial[4] * (Serial[4]+ Serial[3] * ( Serial[3] +  Serial[2] * (Serial[2] + Serial[1] * (Serial[1] + Serial[0]))))) >> 32 != 0) + 798775313);def func_5(Serial):return Serial[4] * (Serial[4] +  Serial[3] * (Serial[3]  +  Serial[2] * (Serial[2]  +  Serial[1] * (Serial[1] + Serial[0])))) // 0x2D418AD4 - 1;k = '1234567890abcedfghijklmnopqrstuvwxyz'for i in range(0,5):n = 0for s_1 in k:for s_2 in k:for s_3 in k:for s_4 in k:for s_5 in k:s = [ord(s_1),ord(s_2),ord(s_3),ord(s_4),ord(s_5)]if i == 0:if func_1(s) == 0:print("".join([chr(i)for i in s]),end='')print('-', end='')n = 1if i == 1:if func_2(s) == 0:print("".join([chr(i)for i in s]),end='')print('-', end='')n = 1if i == 2:if func_3(s) == 0:print("".join([chr(i)for i in s]),end='')print('-', end='')n = 1if i == 3:if func_4(s) == 0:print("".join([chr(i)for i in s]),end='')print('-', end='')n = 1if i == 4:if func_5(s) == 0:print("".join([chr(i)for i in s]),end='')n = 1if n == 1:breakif n == 1:breakif n == 1:breakif n == 1:breakif n == 1:break
  • 使用爆破的方法,每5位进行一次爆破,假设Serial的值为数字或小写字母

在这里插入图片描述
在这里插入图片描述

  • 验证成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LCR-003比特位计数

一.题目: . - 力扣(LeetCode) 二.我的原始解法-一次性通过的python内置bin函数解法: 思路和题目描述一致,就是把0-n的每个数字转为二进制,计算这个二进制中1的个数添加到返回数组中,掌握基础函…

动态求连续区间和(线段树 树状数组)

向上更新,建树,求区间和,修改节点值 向上更新: 返回左右节点值的和 建树: 如果是叶子节点,赋值结构体的左区间,右区间,值 如果不是叶子节点,那么先求中点&#xff0c…

聊聊Flink:这次把Flink的window分类(滚动、滑动、会话、全局)、窗口函数讲透

一、窗口 窗口(Window)是处理无界流的关键所在。窗口将流分成有限大小的“桶”,我们可以在其上应用算子计算。Flink可以使用window()和windowAll()定义一个窗口,二者都需要传入一个窗口分配器WindowAssigner,WindowAs…

友思特新闻 | 友思特荣获广州科技创新创业大赛智能装备行业赛初创组优胜企业!

2024年11月19日,第十三届中国创新创业大赛(广东广州赛区)暨2024年广州科技创新创业大赛智能装备行业赛颁奖典礼隆重举行。 赛事奖项介绍:广州科技创新创业大赛智能装备行业赛 第十三届“中国创新创业大赛(广东广州赛区…

2024强网拟态决赛-eBeepf

漏洞分析与利用 分析后面看情况吧&#xff0c;有时间再写吧&#xff0c;先贴个利用脚本&#xff1a; #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <fcntl.h> #include <…

Kotlin Multiplatform 未来将采用基于 JetBrains Fleet 定制的独立 IDE

近期 Jetbrains 可以说是动作不断&#xff0c;我们刚介绍了 IntelliJ IDEA 2024.3 K2 模式发布了稳定版支持 &#xff0c;而在官方最近刚调整过的 Kotlin Multiplatform Roadmap 优先关键事项里&#xff0c;可以看到其中就包含了「独立的 Kotlin Multiplatform IDE&#xff0c;…

38_转置卷积

转置卷积也被称为&#xff08;Transposed Convolution&#xff09;&#xff0c;也被称为fractionally_strided convolution、deconvolution。 转置卷积不是卷积的逆运算。 转置卷积也是卷积 转置卷积的作用是上采样。 1. 基础概念 转置卷积&#xff08;Transposed Convolution…

【Linux】内核的编译和加载

Linux内核是操作系统的核心&#xff0c;负责管理系统的硬件资源&#xff0c;并为用户空间的应用程序提供必要的服务。内核的编译和加载是操作系统开发和维护的重要环节。本文将详细介绍Linux内核的编译过程以及如何加载内核到系统中。 1. 引言 Linux内核的编译是一个复杂的过…

Qt桌面应用开发 第七天(绘图事件 绘图设备)

目录 1.绘图事件paintEvent 2.高级绘图 3.图片绘制 4.绘图设备 4.1QPixmap 4.2QBitmap 4.3QImage 4.4QPicture 1.绘图事件paintEvent paintEvent——绘图事件 需求&#xff1a;利用QPainter绘制点、线、圆、矩形、文字&#xff1b;设置画笔改为红色&#xff0c;宽度为…

使用IDEA构建springboot项目+整合Mybatis

目录 目录 1.Springboot简介 2.SpringBoot的工作流程 3.SpringBoot框架的搭建和配置 4.用Springboot实现一个基本的select操作 5.SpringBoot项目部署非常简单&#xff0c;springBoot内嵌了 Tomcat、Jetty、Undertow 三种容器&#xff0c;其默认嵌入的容器是 Tomcat&#xff0c;…

【含开题报告+文档+PPT+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现

开题报告 随着互联网的普及和数字娱乐产业的蓬勃发展&#xff0c;电影作为一种重要的娱乐方式&#xff0c;已经深入人们的日常生活。然而&#xff0c;面对海量的电影资源&#xff0c;用户在选择观影内容时常常感到困惑和无所适从。传统的电影推荐方式&#xff0c;如人工筛选、…

C++使用minio-cpp(minio官方C++ SDK)与minio服务器交互简介

目录 minio简介minio-cpp简介minio-cpp使用 minio简介 minio是一个开源的高性能对象存储解决方案&#xff0c;完全兼容Amazon S3 API&#xff0c;支持分布式存储&#xff0c;适用于大规模数据架构&#xff0c;容易集成&#xff0c;而且可以方便的部署在集群中。 如果你已经部…

【君正T31开发记录】8.了解rtsp协议及设计模式

前边搞定了驱动&#xff0c;先不着急直接上手撸应用层的代码&#xff0c;先了解一下大致要用到的东西。 设计PC端先用vlc rtsp暂时H264编码&#xff08;vlc好像不支持h265,这个后边我试试&#xff09;的视频流&#xff0c;先需要支持上rtsp server&#xff0c;了解rtsp协议是必…

JavaScript中的this指向绑定规则(超全)

JavaScript中的this指向绑定规则&#xff08;超全&#xff09; 1.1 为什么需要this? 为什么需要this? 在常见的编程语言中&#xff0c;几乎都有this这个关键字&#xff08;Objective-C中使用的是self),但是在JavaScript中的this和常见的面向对象语言中的this不太一样 常见面…

Spring注入Map学习

Spring注入Map学习 在Spring中 在策略模式中, 会经常用到 根据Bean名称获取Bean的实例 有2个方法很好用 1. 使用Autowired注入 2. 使用构造方法注入 但是奇怪的一点是: 日志打印并没有看到结果, 第一行的 Autowired的结果 是个null 那是因为 注入时机 的问题 注入时机&…

Redis五大基本类型——Set集合命令详解(命令用法详解+思维导图详解)

目录 一、Set集合类型介绍 二、常见命令 1、SADD 2、SMEMBERS 3、SISMEMBER 4、SCARD 5、SRANDMEMBER 6、SPOP 7、SMOVE 8、SREM ​编辑 9、集合间操作 &#xff08;1&#xff09;SINTER &#xff08;2&#xff09;SINTERSTORE &#xff08;3&#xff09;SUNION…

sql 查询语句:将终端数据形式转换成insert语句

文本转换&#xff1a;sql 查询语句&#xff1a;将终端数据形式转换成insert语句 如上&#xff0c;写过后端的都知道&#xff0c;从生产或其他地方拿到的数据&#xff0c;有可能会是图一&#xff1b;但实际上&#xff0c;我们需要图二的数据&#xff1b; 不废话&#xff0c;直接…

C++数据结构与算法

C数据结构与算法 1.顺序表代码模版 C顺序表模版 #include <iostream> using namespace std; // 可以根据需要灵活变更类型 #define EleType intstruct SeqList {EleType* elements;int size;int capacity; };// Init a SeqList void InitList(SeqList* list, int capa…

【AIGC】大模型面试高频考点-RAG篇

【AIGC】大模型面试高频考点-RAG篇 &#xff08;1&#xff09;RAG的基本原理&#xff08;2&#xff09;RAG有哪些评估方法&#xff1f;&#xff08;3&#xff09;RAG有哪些评估框架&#xff1f;&#xff08;4&#xff09;RAG各模块有哪些优化策略&#xff1f; &#xff08;1&am…

标准操作规程(SOP)制定方法+模板指南

在企业的成功之路上&#xff0c;拥有制定、传播以及管理流程文档与详细步骤指南的能力至关重要。众多组织都将标准操作规程&#xff08;SOP&#xff09;作为指导其工作流程操作的核心文档形式。 但SOP的作用远不止于操作指南&#xff1b;它们更像是高性能车辆中的精密GPS系统。…