CrackMe —— 017

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

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

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

来源 <-点击查看

编号 作者 保护方式
017 bjanes Serial(VB5)

工具

x32dbg

VB Decompiler Pro

开始破解之旅

ON.1

爆破方式

首先使用x32dbg打开017号程序,右键搜索字符串

找到了我们的整错提示和错误提示的字符串

进入错误提示字符串,向上翻看

00404ED7 |                        | push ecx                                                |
00404ED8 | | push edx |
00404ED9 | E9 A8000000 | jmp bjcm30a.404F86 |
00404EDE | BE | mov esi,0x8 | 从该地址进入
00404EE3 | 8B1D CC104000 | mov ebx,dword ptr ds:[<&__vbaVarDup>] |
00404EE9 | B9 | mov ecx,0x80020004 |
00404EEE | 898D 20FFFFFF | mov dword ptr ss:[ebp-0xE0],ecx |
00404EF4 | B8 0A000000 | mov eax,0xA | A:'\n'
00404EF9 | 898D 30FFFFFF | mov dword ptr ss:[ebp-0xD0],ecx |
00404EFF | 8D95 F8FEFFFF | lea edx,dword ptr ss:[ebp-0x108] |
00404F05 | 8D8D 38FFFFFF | lea ecx,dword ptr ss:[ebp-0xC8] |
00404F0B | 18FFFFFF | mov dword ptr ss:[ebp-0xE8],eax |
00404F11 | 28FFFFFF | mov dword ptr ss:[ebp-0xD8],eax |
00404F17 | C785 00FFFFFF 102A4000 | mov dword ptr ss:[ebp-0x100],bjcm30a.402A10 | 402A10:L"Wrong serial!"
00404F21 | 89B5 F8FEFFFF | mov dword ptr ss:[ebp-0x108],esi |
00404F27 | FFD3 | call ebx |
00404F29 | 8D95 08FFFFFF | lea edx,dword ptr ss:[ebp-0xF8] |
00404F2F | 8D8D 48FFFFFF | lea ecx,dword ptr ss:[ebp-0xB8] |
00404F35 | C785 10FFFFFF D82B4000 | mov dword ptr ss:[ebp-0xF0],bjcm30a.402BD8 | 402BD8:L"Sorry, try again!"
00404F3F | 89B5 08FFFFFF | mov dword ptr ss:[ebp-0xF8],esi |
00404F45 | FFD3 | call ebx |

此时来到了进入错误提示字符串的入口处,找到00404EDE地址,右键 搜索->当前模块->常数,在此输入00404EDE搜索到了两个引用该字符串的地方,分别下断点

在输入框内输入任意数据,点击Check it 按钮,程序停在了0040459F处,我们按F9运行程序听到了处此时说明0040459F处断点是验证输入数据格式的,处断点才是验证数据,我们单步F8向下

此时我们看到程序跳过了正确提示符,说明是在此处判断我们将00404E30处改为NOP,F9运行

bingo ~ 程序破解成功

ON.2

注册机方式

我们使用VB Decompiler Pro打开017号程序,发现相对于前两个版本此处有了较大的变化

多出了hextode和hexfunc两个函数,并不影响我们的分析,这两个函数应该是转16进制的函数

我们点击进入Command1_Click,来到最下方看到了生成注册码的地方

发现和我们的前两个程序代码一样

附上我们的注册机代码

code = ''
for i in range(1, 10):
a = i ^ 2
code = code + str(a)[-1]
print(code)

得出结果为我们输入到输入框内,点击Check it按钮 

bingo ~ 破解成功

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

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

    CrackMe —— 018 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 —— 025

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

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

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

随机推荐

  1. HelloDjango 启动!免费带你学Django全栈!

    欢迎 追梦 入伙 HelloGitHub-Team,同时为我们带来了完全免费的 HelloDjango 系列教程,全网首发于 HelloGitHub 公众号.让想你的系列文章被跟多人看到,那就来加入我 ...

  2. C#5.0新增功能02 调用方信息

    连载目录    [已更新最新开发文章,点击查看详细] 通过使用调用方信息特性,可获取有关方法的调用方的信息. 可以获取源代码的文件路径.源代码中的行号和调用方的成员名称. 此信息有助于跟踪.调试和创建 ...

  3. 【译】WebAPI,Autofac,以及生命周期作用域

    说明 原文地址:http://decompile.it/blog/2014/03/13/webapi-autofac-lifetime-scopes/ 介绍 这是一篇关于AutoFac的生命周期作用域 ...

  4. Envoy 源码分析--LDS

    Envoy 源码分析--LDS LDS 是 Envoy 用来自动获取 listener 的 API. Envoy 通过 API 可以增加.修改或删除 listener. 先来总结下 listener ...

  5. Cesium 学习(一)环境搭建

    网上已有很多文章来教我们搭建Cesium的环境,我也没有必要再写一次:下面是我参照的文章的地址: 1.https://www.cnblogs.com/huqi-code/p/8287403.html  ...

  6. 【Demo 1】基于object_detection API的行人检测 2:数据制作

    项目文件结构 因为目录太多又太杂,而且数据格式对路径有要求,先把文件目录放出来.(博主目录结构并不规范) 1.根目录下的models为克隆下来的项目.2.pedestrian_data目录下的路径以及 ...

  7. IOS应用无法下载、此时无法安装应用程序

    无法安装应用 app开发者,进行程序测试,重试还不行,就重新打包, 个人,更改wifi的dns 在“设置” –> “WiFi” –> 进入当前的WiFi 进入之后点击旁边的叹号,然后进入之 ...

  8. 自定义SWT控件七之自定义Shell(可伸缩窗口)

    7.可伸缩窗口 该自定义窗口可以通过鼠标随意更改窗口大小 package com.hikvision.encapsulate.view.control.shell; import org.eclips ...

  9. 夯实Java基础(一)——数组

    1.Java数组介绍 数组(Array):是多个相同类型元素按一定顺序排列的集合. 数组是编程中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常我们可以通过数组元素的索引来访问 ...

  10. Android活动(Activity)创建及生命周期

       Activity是Android的门面,可以与用户进行互动的重要模块,凡是在应用中可以看到的东西,都是放在活动中的.   在学习新的技术时,我喜欢将需要学习的技术与自己懂得技术进行类似比较,而活 ...