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

逆向入门(22)程序逆向篇-TraceMe

界面看起来很普通
在这里插入图片描述
也没有壳,直接搜索字符串找到关键代码处
在这里插入图片描述
但是发现这些都是赋值,并没有实现跳转相关的函数。这里通过给弹窗函数下断点,追一下返回函数来找触发点。
在这里插入图片描述
再次点击check,触发断点,接着按ctrl+F9返回到函数部分
在这里插入图片描述
再往上多找几个跳转就发现了获取字符串的相关函数了。
在这里插入图片描述
从这里重新下断点接着追,可以分析出以下函数内容
在这里插入图片描述
这里跟进这个call里面看
在这里插入图片描述
这里主要是有一个地方注意,内存地址为0x405030的位置的值,需要自己跟着看一下,算法还是挺简单的。重复打开几次软件发现,这部分的值是固定的。
在这里插入图片描述
于是根据这个算法,可以计算出最后的值,然后填写的密码进行比较就可以了,写出注册机

#include <iostream>
#include <string>int main() {std::string username;printf("用户名: ");std::getline(std::cin, username);int userLen = username.length();if ( userLen < 4) {printf("用户名长度过短");return 0;}char str_00405030[8] = { 0x0c,0x0a,0x13,0x09,0x0c,0x0b,0x0a,0x08 };int eax = 0;int esi = 0;for (int ecx = 3; ecx < userLen; ecx++) {int dl = username[ecx];int bl = str_00405030[eax];esi += dl * bl;eax++;if(eax > 7)eax = 0 ;}printf("key: %d", esi);return 0;
}

在这里插入图片描述
搞定
在这里插入图片描述
其实这个程序总体代码不多,翻源码也是可以看到关键代码的,但是在复杂的程序时就没这么容易 了,所以采取了对窗口函数下断的方式,虽然麻烦了,但是方法更加通用。

http://www.lqws.cn/news/563347.html

相关文章:

  • 【纯干货】调整word目录中的行距以及右对齐页码
  • 高端电影色调人像风光大片摄影后期调色Lightroom预设,手机滤镜下载!
  • Linux软连接和硬连接
  • 从 “慢如蜗牛” 到 “风驰电掣”:中欧跨境网络专线加速方案
  • spring-ai-alibaba DashScopeCloudStore自动装配问题
  • 论文阅读 Align before Fuse (ALBEF)
  • EXISTS 和 NOT EXISTS 、IN (和 NOT IN)
  • 每日算法刷题Day40 6.27:leetcode前缀和3道题,用时1h20min
  • 1.2 基于蜂鸟E203处理器的完整开发流程
  • 【大模型】Query 改写常见Prompt 模板
  • 【转】PostgreSql的镜像地址
  • InfluxDB 3 Core最后值缓存深度实践:毫秒级响应实时数据的核心引擎
  • Mysql架构
  • c++学习(五、函数高级)
  • 大事件项目记录11-文章分类接口开发-删除文章分类
  • Qt:QCustomPlot库简介
  • Vue基础(18)_收集表单数据
  • debian国内安装docker
  • 【经验】bitsandbytes安装-LLAVA-1.5库调试
  • 【数据标注师】分类标注
  • AD 学习笔记——第一章 系统的安装及参数设置
  • 一个简单测试Deepseek吞吐量的脚本,国内环境可跑
  • 印度和澳洲的地理因素
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • 数据库(MYsql)
  • Qt-Advanced-Docking-System 关闭、禁止拖动、最大化按钮等设置
  • 从静态到动态:Web渲染模式的演进和突破
  • Spring Cloud:高级特性与最佳实践
  • 布林带的使用
  • 华为云Flexus+DeepSeek征文 |华为云ModelArts Studio集成OpenAI Translator:开启桌面级AI翻译新时代