新160个crackme - 043-riijj_cm_20041121

运行分析

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

  • 除了主程序还有一个dll文件,应该是要加载pf1.dll这个动态链接库
  • 运行主程序,需破解Name和Serial,点击注册无反应

PE分析

在这里插入图片描述

  • C++程序,32位,无壳

静态分析&动态调试

在这里插入图片描述

  • 尝试ida动调加载动态链接库pf1.dll,弹出错误,推测存在反反调试

在这里插入图片描述

  • 使用OD的StrongOD插件绕过反反调试,设置参数如上

在这里插入图片描述

  • 程序拖入OD,点击F9,发现程序正常运行

在这里插入图片描述

  • 点击菜单栏下方的’e’按钮,查看加载的dll,双击进入pf1.dll

在这里插入图片描述

  • 来到pf1模块,右键 -> 中文搜索引擎 -> 智能搜索

在这里插入图片描述

  • 发现successful字符串,双击进入

在这里插入图片描述

  • 发现关键跳转地址02571108,为了满足判断条件test eax,eax,需要执行025710E4的jmp跳转

在这里插入图片描述

在这里插入图片描述

  • 从关键跳转处向上查找,发现2个循环,和一个常量"fytugjhkuijonlbpvqmcnxbvzdaeqrwtryetdgfkgphonuivmdbxfanqydexzwztqnkcfkvcpvlbmhotyiufdkdnjxuzyqhfstae"
  • 第1个循环:提取Name每个字符,除以0x62求余,将余数和余数+1作为上面常量的下标,提取其字母,然后依次存入地址1中
  • 第2个循环:判断地址1和Serial每个字符串是否相等

算法分析

Name = 'concealbear'
str1 = 'fytugjhkuijonlbpvqmcnxbvzdaeqrwtryetdgfkgphonuivmdbxfanqydexzwztqnkcfkvcpvlbmhotyiufdkdnjxuzyqhfstae'address1 = ''
for i in range(len(Name)):address1 += str1[ord(Name[i])%0x62]address1 += str1[ord(Name[i])%0x62 + 1]Serial = address1print(Name + '的Serial为:\n' + Serial)

在这里插入图片描述

在这里插入图片描述

  • 验证成功

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

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

相关文章

【SAM】Segment Anything网络结构详解

Segment Anything网络结构详解 论文链接:http://arxiv.org/abs/2304.02643 代码链接:https://github.com/facebookresearch/segment-anything 一、整体框架 二、图像编码器image encoder 使用一个MAE预训练好的ViT模型(ViT-H/16 使用了 14…

如何在JPG文件中隐写数据

概述 最近在做资源管理器背景的一个功能时,需要将信息传递到DLL中去, 主要就是传递一些比较简单的参数,包括图片的契合度,透明度之类的。通信方式有多种,毕竟是练手的功能,就想找一些以前没用过的方式。 …

基于STM32校车安全监控系统的设计(论文+源码+实物)

1 方案设计 根据设计要求,本设计校车安全监控系统的设计以STM32F103单片机作为主控制器,通过MQ传感器实现异常气体的检测,当异常气体浓度异常时会通过继电器打开车窗进行通风,以保证舒适的环境,通过红外传感器用于监…

BUUCTF PWN wp--jarvisoj_level0

第一步 checksec ,该题为64位。 分析一下二进制保护机制: Arch: amd64-64-little 这个字段表示二进制程序的架构是 64 位的小端序的 x86-64 架构。小端序意味着低位字节存储在内存中的低地址上,高位字节存储在高地址上。RELRO: No RELRO …

【Java】 为什么是split 方法按点号分割是用 “ \\. “ ?

前言: 小知识,记录自用and分享。 原因分析: 字符串的很多方法是可以使用正则表达式的,这里就包括了split这个方法。 . 在正则表达式里的意思是通配符,表示:匹配任意单个字符。那么,当使用split…

vue.js项目实战案例详细源码讲解

​ 大家好,我是程序员小羊! 前言: 为帮助大家更好地掌握Vue.js项目的开发流程,我将为你讲解一个完整的Vue.js实战案例,并提供详细的源码解析。这个案例将涵盖从项目创建到实现各种功能模块的全过程,适合用于…

媲美Flux pro! Ideogram 发布了 2.0 图像生成模型, 照片级真实感和高质量文本渲染!

Ideogram 发布了 2.0 模型,图像生成质量大幅提高,产品易用性改善,文字生成能力也提升许多。Ideogram 2.0 在图像快速对齐、照片级真实感和文本渲染质量方面取得了显著进步。人工评估一致认为 Ideogram 2.0 比 Flux Pro 和 DALLE 3 有了显著改进。尽管我们…

python网络爬虫(四)——实战练习

0.为什么要学习网络爬虫 深度学习一般过程:   收集数据,尤其是有标签、高质量的数据是一件昂贵的工作。   爬虫的过程,就是模仿浏览器的行为,往目标站点发送请求,接收服务器的响应数据,提取需要的信息&#xff0c…

vscode 未定义标识符 “uint16_t“C/C++(20) 但是可以顺利编译

这是没有指定编译器的原因 解决方法: 打开 或c_cpp_properties.json,添加编译器

AIGC提示词(2):塑造未来内容创作的核心力量

引言 🌟 在这个数字化的时代,人工智能生成内容(AIGC)正变得越来越普遍。从自动写作到图像生成,AI正以前所未有的速度和多样性创造内容。然而,要实现高质量和相关性强的内容生成,关键在于有效地…

PyCharm 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开设置对话框2. 设置编辑器字体3. 选择外观字体 前言 PyCharm 自定义字体大小,统一设置为 JetBrains Mono 具体操作 【File】>【Settings...】>【Editor】>【Font】 统一设置为字体样式 JetB…

算法基础-离散化

1、a数组可能存在重复元素 去重 排序 2、如何算出 x 离散化后的值 二分 1、add 和 query 记录每次填入的两个数 2、将位置 x 和每次询问的两个数 l 和 r 添加到 alls 进行排序去重 3、通过Collections.binarySearch映射(一定能找到,不用判…

如何构造哈夫曼树

目录 一、哈夫曼树的概念 1、结点的权: 2、结点的带权路径长度 3、树的带权路径长度 4、哈夫曼树 二、哈夫曼树的构造 1、构造步骤 三、哈夫曼树的编码 一、哈夫曼树的概念 1、结点的权: 定义: 每个结点的权重(重要性…

Linux终端简单配置(Vim、oh-my-zsh和Terminator)

文章目录 0. 概述1. 完整Vim配置2. Vim配置方案解释2.1 状态行与配色方案2.2 文件管理与缓存设置2.3 搜索与导航优化2.4 缩进与格式化设置2.5 粘贴模式快捷切换2.6 文件编码与格式2.7 性能优化 3. 安装 Oh My Zsh 及配置3.1 安装 Oh My Zsh3.2 Oh My Zsh 配置 3. Terminator终端…

Linux Grep案例

目录 一. 查询两个文件第一列的数据并去重二. 抽取日志中指定的字段三. 服务器指定时间点异常查询四. 从csv文件中抽取指定的数据五. 获取除了空白行和注释之外的部分 一. 查询两个文件第一列的数据并去重 📚file1.log 123 aaa 你好 345 bbb 我好 345 ccc 大家好 …

神经网络搭建实战与Sequential的使用

一、需要处理的图像 二、对上述图片用代码表示: import torch from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten, Linearclass SUN(nn.Module):def __init__(self):super(SUN, self).__init__()self.conv1 Conv2d(3, 32, 5, padding2)self…

RSTP的改进有哪些

华为设备生成树有几种模式? 4种模式:传统STP(802.1D)、RSTP(802.1w)、MSTP(802.1s)、VBST(基于VLAN的生成树,兼容某些厂商的每VLAN一颗生成树) A…

【大数据算法】时间亚线性算法之:串相等判定算法。

串相等判定算法 1、引言2、串相等判定算法2.1 定义2.2 核心原理2.3 应用场景2.4 算法公式2.4.1 Rabin-Karp算法2.4.2 哈希函数 2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥, 啥是串相等判定算法啊 小鱼:这个… en…en… 小屌丝:咋…

Rust Linux开发人员自比道路建设者和寻路者的区别

红帽公司(Red Hat)的长期直接渲染管理器(Direct Rendering Manager,DRM)子系统维护者大卫-艾尔里(David Airlie)撰写了一篇有趣的博文,将开发人员的类型与筑路工人、寻路者与酒店进行…

swift自定义数据集微调Qwen-7B大模型,转换模型后使用ollama跑起来

前文:swift微调Qwen-7B大模型-CSDN博客 我详细介绍了swift如何进行微调,但数据集均来自魔搭社区,如何想训练自定义数据集,实际上也很简单。 一、自定义数据集微调 export MKL_THREADING_LAYERGNU \ CUDA_VISIBLE_DEVICES0,1,2…