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

逆向入门(5)程序逆向篇-AD_CM#2

打开程序
在这里插入图片描述
常规注册界面,打开OD,随便找找就看到关键字了
在这里插入图片描述
没有壳逻辑也挺简单的
在这里插入图片描述
获取输入框,用5比较输入内容的长度,小于则跳转提示密码长度不够
在这里插入图片描述
否则就进入下一个流程,去获取序列号,其实可以直接将jnz换成je就可以完成暴力破解。
在这里插入图片描述
这里主要是要理解一下这个loopd循环体的内容,直接看着还是有点难理解,动态调试到是能看明白。这里主要是难在了不知道什么时候才会停止循环,看来明天要写个c看下反汇编单独学一下了。还是用IDA吧,打开IDA,跳转到401152处,按F5,进入到伪代码段。
在这里插入图片描述
通过这部分稍微就好理解了,序列号的内容为对应用户名的每一位的ascii值减去长度加上位置,比如假如用户名总长度为5,第0位为A,则A - 5 → A(65) -5 - 0 = 60 ('<'),第1位为BB - 5 + 1 → B(66) -4 = 62 ('>'),用这个就可以写出注册机了。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>void generate_key(const char* input, char* output) {int len = strlen(input);for (int i = 0; i < len; i++) {// 核心算法:output[i] = input[i] - (len - i)output[i] = input[i] - (len - i);}output[len] = '\0';  // 添加字符串终止符
}int main() {char username[21];  // 最大20字符+1终止符char serial[21];    // 同样大小printf("Enter username (5-20 characters): ");if (!fgets(username, sizeof(username), stdin)){perror("Input error");return 1;}// 移除换行符username[strcspn(username, "\n")] = '\0';int len = strlen(username);if (len < 5) {printf("Error: Username must be at least 5 characters\n");return 1;}generate_key(username, serial);printf("Generated Serial: %s\n", serial);return 0;
}

搞定
在这里插入图片描述

http://www.dtcms.com/a/250596.html

相关文章:

  • 【八股消消乐】构建微服务架构体系—实现制作库与线上库分离
  • 再参数化视角下的批量归一化:缩放平移操作的本质意义
  • python与java的区别
  • Appium + Ruby 测试全流程
  • Java线程转储:快速定位死锁与阻塞
  • Kubernetes镜像拉取认证指南
  • BeckHoff PLC --> 料筐(KLT Box)自动对中与抓取程序分析
  • 从检索到生成:RAG 如何重构大模型的知识边界?
  • 【无标题】二维势能塌陷的拓扑色动力学:数学物理框架与引力本质探索
  • 通达信腾龙凤舞幅图指标公式
  • 【算法篇】逐步理解动态规划模型7(两个数组dp问题)
  • 高效录屏工具推荐:从系统自带到专业进阶
  • leetcode 2566. 替换一个数字后的最大差值 简单
  • Relook:softmax函数
  • python第52天打卡
  • Anylogic中使用Python执行3(求和)
  • CountDownLatch入门代码解析
  • ELK日志文件分析系统——L(Logstash)
  • Flask 动态模块注册
  • python中的异常处理try-except - else - finally与自定义异常处理
  • 探索数据的力量:Elasticsearch中指定链表字段的统计查询记录
  • 生日悖论理论及在哈希函数碰撞中的应用
  • AndroidMJ-mvp与mvvm
  • ASR语音转写技术全景解析:从原理到实战
  • 人工智能学习21-Pandas-pivot_table
  • 关于MCU、MPU、SoC、DSP四大类型芯片
  • 基于区块链的去中心化身份验证系统:原理、实现与应用
  • 【软测】接口测试 - 用postman测试软件登录模块
  • GDI+ 中与GDI32取图形区域函数对比CreateEllipticRgn/CreatePolygonRgn
  • day31 打卡