新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))
  • 验证成功
相关推荐
Jerry13 小时前
LeetCode 160. 相交链表
算法
Jerry14 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵14 小时前
费马小定理
python·数学·算法
技术不好的崎鸣同学15 小时前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全
Full Stack Developme17 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
Jerry18 小时前
LeetCode 707. 设计链表
算法
C语言小火车18 小时前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
weixin_4000056018 小时前
Vision-Language-Action:LMDrive双损失函数训练模块与 LangAuto 基准评测框架
人工智能·深度学习·算法·机器学习·自动驾驶
kebidaixu18 小时前
两轮BMS AFE SH367306 I2C 读写时序
算法