CrackMe —— 006

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

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

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

来源 <-点击查看

编号 作者 保护方式
006 aLoNg3x Name/Serial(Delphi)

工具

x32dbg

KeyMake

DelphiDecompiler

开始破解之旅

ON.1

首先使用x32dbg打开程序搜索字符串

在这个程序中我们需要让程序界面显示出 Ringzer0 logo

首先我们使用DelphiDecompiler 打开006号程序

在Procedures -> Events下我们看到一个CodiceChange的函数从名字中可以得出是注册码改变的意思,我们在00442C78处下断,还有一个NomeChange函数,从名字中可以得出应该是用户名改变的意思,我们在00442E04处下断

ON.2

先在Nome框内敲击任意数据,程序停在了断点处

单步向下,我们发现了有两处跳转,来到第一处跳转,我们把

F9运行

我们发现OK按钮变为了可点击状态,我们将00442E26地址改为NOP,OK按钮变恒为可点击状态

在Codice输入框内敲击任意数字,程序停在了断点处

单步F8向下

遇到第一个判断跳转处,我们将ZF反转,F9运行,发现OK按钮变为了灰色,说明注册码输入错误按钮会变为灰色

重新输入数据,停在了断点处,我们继续单步向下,跳过第一个跳转

来到第二个跳转

我们将ZF PF 变为1,F9运行,此时我们发现OK按钮变为了可点击状态

将00442CD6 地址 修改为NOP,OK按钮变恒为可点击状态

接下来我们在00442D64处下断,从函数名我们可以得知该函数为OK按钮点击事件函数

点击OK,停在了断点处,单步向下

遇到两个跳转我们一次修改寄存器ZF为零查看窗口变化,经过修改两个跳转后发现OK按钮消失,我们将这两个跳转修改为NOP

按照提示破解是没有完全成功的,Cancella按钮没有消失

我们在清除按钮地址00442EA8处下断

点击Cancella,停在了断点处,单步向下

遇到一个跳转我们一次修改寄存器ZF PF为零F9运行查看窗口变化发现按钮消失,我们将该处跳转修改为NOP

破解成功

ON.3

在x32dbg界面右键->补丁->修补文件->保存 即刻保存成功修改的文件

此处是爆破方式,追码部分大家可以研究一下^_^

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

  1. 逆向破解之160个CrackMe —— 008-009

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Linux CentOS7 通过 yum 搭建 svn 服务器,并配置权限

    1,使用 yum 安装 svn 服务器 yum -y install subversion rpm -ql subversion -- 改命令可以查看 svn 的安装位置 2,创建仓库根目录,可任意选 ...

  2. [MySQL] MySQL存储过程 事务transaction 数据表重建

    直接上代码 -- 删除存储过程 DROP PROCEDURE IF EXISTS `renew_message_queue`; -- 添加; 的转义 DELIMITER ;; CREATE PROCE ...

  3. codesmith设置mysql的连接字符串

    .net core,codesmith连不上 server=192.168.3.240;Initial Catalog=tpmdb;User=root;Password=root .net frame ...

  4. 1.3.1 LVM条带化error

    报错:​ #pvcreate /dev/dfb2 /dev/dfa2 /dev/dfc2 /dev/dfd2 already exists in filesystem   Can't open /de ...

  5. java设计思想-池化-手写数据库连接池

     https://blog.csdn.net/qq_16038125/article/details/80180941 池:同一类对象集合 连接池的作用 1. 资源重用 由于数据库连接得到重用,避免了 ...

  6. Java高频面试题--单例设计模式

  7. java中通过Adb判断PC是否连接了移动设备

    最近用到PC端和移动端通过USB连接传输数据的方式,于是总在使用Adb命令,为了逻辑的严谨和代码容错,想在传输数据的之前,PC和移动端先建立一次会话,防止移动端还未连接就直接传输数据会报错,找了很久并 ...

  8. 【leetcode】501. Find Mode in Binary Search Tree

    class Solution { public: vector<int> modes; int maxCnt = 0; int curCnt = 0; int curNum = 0; ve ...

  9. 【LEETCODE】69、动态规划,easy,medium级别,题目:198、139、221

    package y2019.Algorithm.dynamicprogramming.easy; /** * @ProjectName: cutter-point * @Package: y2019. ...

  10. CLRS10.2-7练习 - 翻转单向列表

    要求: Give a Θ(n)-time nonrecursive procedure that reverses a singly linked list of nelements. The pro ...