新160个crackme - 091-DOSKEY-CRACKME2

运行分析

  • 需破解Name和Password

PE分析

  • upx壳,32位

手动脱壳

  • x32dbg打开程序,按一下F8,根据ESP定律,在此处下断点
  • 按一下F9,两下F8,来到OEP处00401000
  • 打开Scylla,点击转储保存文件
  • 点击IAT自动搜索,点击获取导入,点击恢复转储,选择上一步保存的文件

  • 使用DIE查看,发现脱壳成功,程序为MFC程序

静态分析&动态调试

  • ida搜索字符串,双击进入

  • 通过静态分析,逻辑如上

  • 3个变量的值如上

算法分析

python 复制代码
username = 'concealbear'
str_1 = 'biq2jrxc-ape3*dsynhz8gt5o7f0uml4v19w6+/k'
str_2 = '-apeoiq2jrml4xcsw6ynh7f0uv19+3/k*dbz8gt5'
str_3 = 'h7f0uv19+3/kjrml4xcsw6yn*dbz8gt5-apeoiq2'

username_encode_1 = []
for k in range(len(username)):
    v5 = 41 * ord(username[k]) % 40;
    v5 = str_1[v5];
    username_encode_1.append(v5)

for i in range(len(username)):
    v8 = 31 * ord(username[i]) % 40;
    v8 = str_2[v8];
    username_encode_1.append(v8)

for j in range(len(username_encode_1)):
    username_encode_1[j] = str_3[11 * ord(username_encode_1[j]) % 40]

print("".join(username_encode_1))
  • 验证成功
相关推荐
Fly Wine6 小时前
Leetcode之有效字母异位词
算法·leetcode·职场和发展
程序员夏末7 小时前
【LeetCode | 第七篇】算法笔记
笔记·算法·leetcode
Chengbei118 小时前
若依全漏洞复现:从 SQL 注入到 RCE 一站式实战 复现、利用与防御
数据库·sql·安全·web安全·网络安全·系统安全·安全架构
csdn_aspnet8 小时前
C/C++ 两个凸多边形之间的切线(Tangents between two Convex Polygons)
c语言·c++·算法
数据皮皮侠8 小时前
中国城市间地理距离矩阵(2024)
大数据·数据库·人工智能·算法·制造
钛态9 小时前
Flutter for OpenHarmony:mockito 单元测试的替身演员,轻松模拟复杂依赖(测试驱动开发必备) 深度解析与鸿蒙适配指南
服务器·驱动开发·安全·flutter·华为·单元测试·harmonyos
3GPP仿真实验室9 小时前
深度解析基站接收机核心算法:从 MRC 到 IRC 的空间滤波演进
算法
Boop_wu9 小时前
[Java 算法] 动态规划(1)
算法·动态规划
WolfGang0073219 小时前
代码随想录算法训练营 Day18 | 二叉树 part08
算法
小二·10 小时前
威胁情报驱动的安全运营:从IOC到TTPs的深度狩猎实战指南
安全