CrackMe —— 020

160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序

CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。

CrackMe简称CM。
程序下载地址:点击我

来源 <-点击查看

编号 作者 保护方式
020 Brad Soblesky Name/Serial

工具

x32dbg

peid

scylla

DelphiDecompiler

开始破解之旅

ON.1

首先使用PEID程序进行查壳,发现存在wwpack32压缩壳

我们使用x32dbg打开020号程序,程序停在了入口处

我们使用ESP定律来脱壳

我们F8一次,此时观察右边寄存器窗口

我们看见ESP已经变成了红色,右键点击“在内存窗口转到”

此时我们已经下好了断点,F9运行,停在了我们的OEP附近

F8一下,就来到了我们的OEP

在这里我们打开scylla,按照图中顺序我们一次进行

此时再用我们的PEID进行查壳,发现已经没有壳了

ON.2

爆破方式

我们使用 DelphiDecompiler程序打开020软件

我们在x32dbg中跳转到0044A2E8这个地址同时下断点,我们在输入框内输入任意数据点击spider按钮,此时程序停在了我们的断点处

我们单步向下走

0044A373 | 8B83 F0020000            | mov eax,dword ptr ds:[ebx+2F0]          | ebx+2F0:"B"
0044A379 | E8 8EA0FDFF | call bullet.8_dump_scy.42440C |
0044A37E | 8B55 F0 | mov edx,dword ptr ss:[ebp-] |
0044A381 | | pop eax |
0044A382 | E8 6198FBFF | call bullet.8_dump_scy.403BE8 |
0044A387 | 0F | jne bullet.8_dump_scy.44A398 | 此处关键跳
0044A389 | B2 | mov dl, |
0044A38B | 8B83 FC020000 | mov eax,dword ptr ds:[ebx+2FC] | ebx+2FC:"B"
0044A391 | E8 669FFDFF | call bullet.8_dump_scy.4242FC |
0044A396 | EB | jmp bullet.8_dump_scy.44A3A9 |
0044A398 | 8B83 D4020000 | mov eax,dword ptr ds:[ebx+2D4] | ebx+2D4:"@"
0044A39E | 8B50 | mov edx,dword ptr ds:[eax+] |
0044A3A1 | 83EA 0A | sub edx,A |
0044A3A4 | E8 4398FDFF | call bullet.8_dump_scy.423BEC |
0044A3A9 | 8B83 D4020000 | mov eax,dword ptr ds:[ebx+2D4] | ebx+2D4:"@"
0044A3AF | | cmp dword ptr ds:[eax+], | :''

我们将0044A387处将JNE修改为NOP,F9运行

bingo ~ 破解成功,奖杯出来了

爆破方式

查看代码可得0044A34B地址处为key计算处

输入数据转10进制 * 3 得出了3E74984B

下面是python代码

int('0x3E74984B',16)/3

结果为 349276185

bingo ~ 破解成功,追码成功

逆向破解之160个CrackMe —— 020的更多相关文章

  1. 逆向破解之160个CrackMe —— 001

    CrackMe —— 001 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  2. 逆向破解之160个CrackMe —— 002-003

    CrackMe —— 002 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  3. 逆向破解之160个CrackMe —— 004-005

    CrackMe —— 004 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  4. 逆向破解之160个CrackMe —— 013

    CrackMe —— 013 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  5. 逆向破解之160个CrackMe —— 014

    CrackMe —— 014 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  6. 逆向破解之160个CrackMe —— 016

    CrackMe —— 016 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  7. 逆向破解之160个CrackMe —— 017

    CrackMe —— 017 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  8. 逆向破解之160个CrackMe —— 018

    CrackMe —— 018 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  9. 逆向破解之160个CrackMe —— 025

    CrackMe —— 025 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

随机推荐

  1. 使用dozer将DTO转化为DO

    DTO,就是Data Transfer Object,数据传输对象,可以简单理解成请求中的对象. PO,就是Persistant Object,持久化对象,它跟持久层(通常是关系型数据库)的数据结构形 ...

  2. 2019-2020-1 20181218《Linux内核原理与分析》第一周作业

    目录 问题和参考 有趣/有用的Linux命令 小作业和解答 一些图片 相关学习 本文是学习Linux基础入门(新版)后的总结. 问题和参考 虚拟机莫名崩溃,一天重启了几十次电脑,重装两次系统,心累.想 ...

  3. docker 挂载主机目录 -v 和 --mount区别

    使用-v  时,如果宿主机上没有这个文件,也会自动创建, 但是如果使用--mount时,宿主机中没有这个文件会报错找不到这个文件,并创建失败

  4. TaskTimer

    什么是调度 任务:就是事情 调度:在不同的时间点或者在指定的时间点或者间隔多长时间去运行这个任务.就是生活中的闹钟 相关的类Timer 类:位于 java.util 包中 案例 实现时间的动态刷新 任 ...

  5. Allowed memory size of 134217728 bytes exhausted问题解决方法

    Allowed memory size of 134217728 bytes exhausted问题解决方法 php默认内存限制是128M,所以需要修改php.ini文件. 查找到memory_lim ...

  6. python实现栈结构

    # -*- coding:utf-8 -*- # __author__ :kusy # __content__:文件说明 # __date__:2018/9/30 17:28 class MyStac ...

  7. [转帖]程序员:我终于知道post和get的区别

    程序员:我终于知道post和get的区别 置顶 2019-11-14 00:03:09 zhanglinblog 阅读数 15316 文章标签: post和get的区别程序员 更多 分类专栏: .ne ...

  8. Django框架之DRF 认证组件源码分析、权限组件源码分析、频率组件源码分析

    认证组件 权限组件 频率组件

  9. C语言输入带空格的字符串

    参考:https://blog.csdn.net/vincemar/article/details/78750435 因为: scanf("%s",str); 遇到空格就停止接收后 ...

  10. Windows docker k8s asp.net core

    在上一篇文章 Ubuntu 18 Kubernetes的Install and Deploy 我们在ubuntu在部署了k8s集群, 今天来看看windows下怎么搞. 主要点有: 1) window ...