偷懒了很久也是时候要继续开始学习了。

环境:

windows xp sp3

工具:

VB Decompiler v8.3

这次是个vb文件,所以尝试一下用这个的感觉。

打开文件之后发现有两个CrackMe选择,分别是1.0版本和2.0版本。

打开vb decompiler,载入badboy,

在Forms的Form1里头,几乎有所有的控件的属性,找到Caption为“try”的commandbutton,然后记下它的标号,分别是2,4

然后跑到code,在form1里面找到command2和command4的click事件。

因为1.0版本的CrackMe只有一个输入框,那就可以猜测Command4是1.0的try,因为已经有代码了,照着看就好了。

发现要和Label3的caption相同才行,那么Label3的caption是如何来的呢?

把From1里头的事件都找一遍,最后在Combol的click中找到了Label3,然后上面有一长串的计算公式,就不难猜测上面公式的计算结果就是Label3的capton内容了。

公式内容是:

CStr((((CLng(Day(Now) * Day(23) + Month(Now) * Month(2) + Year(Now) * Year(3)) + CLng((((Day(Now) * Day(23)) + (Month(Now) * Month(2))) + (Year(Now) * Year(3)))))

+ CLng((Day(14) * Year(2020)))) + CLng((Day(14) * Year(2020)))))

根据这串公式就可以得出CrackMe 1,0的输入内容了。

Day(Now)是指今天的号数,Month(Now)是今天的月份,Year(Now)则是今年的年份了

Day(23) 则是 22, Moth(3)则是1,Year(3)是1900,Day(14)是13,Year(2020)是1905

然后就可以写出CrackMe1.0注册机了。

现在来看看CrackMe 2.0的command2的click事件。

首先看到的是一个长度判断,输入的Name长度不能小于5

然后有一个很长的字符串:

var_94 = "0110617121214051216101106141404110614140411091211100810101608040610121608100416"

var_98 = Text1.text 这个就是保存输入的name

紧接着就是2个for循环,其中:

Mid()函数在我理解中是:Mid(char * s, int begin,int length),即从s[begin-1]的位置开始,数到s[begin-1+length],将这个范围里的数字转为数字。

如:Mid(var_94,CLng(var_A8*3),3),假设var_A8 = 4吧,然后找到var_94[11]的位置,然后数3个数字,所以函数返回结果是:1405

val()函数就是将string类型转为double型

Asc()函数则是计算字母的ascii值

最后面是一个比较,比较的内容是输入的serial 和两个for得出的结果的对比,相同则显示成功。

在写注册机的时候需要注意的是,有些变量是突然间跑出来的,可以假设它之前为0,还有个问题是var_A8有一个var_A8+1判断是否大于等于39,但是显然找不到改变var_A8的值的地方,或许是工具反编译的时候有问题,但是仍然可以猜想var_A8的改变情况,拿第一个for循环来讲:或许是var_A8++,也可能是var_A8 *= 3,那么当它大于等于39的时候,它就会变成0,然后它将会一直为0,可以两种方法都测试一下,会发现都得不到正确serial,那么就有可能是在 if(var_A8+1)>=39 then 这里的判断多了,把“+1”去掉,在这个判断前面加上var_A8++,就能得到正确的serial

160 - 13 badboy相关推荐

  1. 苹果开发之Cocoa编程(原书第4版)

    <苹果开发之Cocoa编程(原书第4版)> 基本信息 原书名:Cocoa Programming for Mac OS X: Fourth Edition 作者: (美)希莱加斯(Hill ...

  2. php 彩蛋 flag,php4的彩蛋

    今天看了一些代码,看到了一个小彩蛋. /* env.php */ phpinfo(); ?> 用浏览器访问 http://ipaddress/dirname/env.php?=PHPE9568F ...

  3. 在 windows 下使用 Xming+Putty 显示 Linux 下软件图形界面

    From: http://www.blogjava.net/ivanwan/archive/2012/04/26/376670.html From: http://www.bubuko.com/inf ...

  4. 在windows下使用Xming+Putty显示Linux下软件图形界面

    From: http://www.blogjava.net/ivanwan/archive/2012/04/26/376670.html From: http://www.bubuko.com/inf ...

  5. 英寸、 Picas、 点、 跨度和 Twips 之间的关系

    有几个方法 typographers 用于测量字符间距 (字距调整) 和行间距 (前导字符). 下面列出了定义,和您可能要使用的典型转换. POINT "点"是等于 1 / 72 ...

  6. python创意编程是什么_Python趣味创意编程

    第 1 章 Python与Processing介绍 1 1.1 什么是Python 1 1.2 Processing下载与配置 2 1.3 小结 4 第 2 章 转动眼珠的圆脸 5 2.1 显示一个圆 ...

  7. CentOS7通过定时脚本阻断异常IP连接SSH(实测)

    需求 由于业务需要将Linux服务器映射到公网访问,SSH 端口已经修改,但还是发现有很多IP进行暴力破解,尝试将异常IP阻止非法访问,实现方式①SSH黑名单 ②Firewalld防火墙添加drop规 ...

  8. 兰州大学2016年初试成绩基本要求

    兰州大学2016年硕士研究生招生复试分数线(学术型) 学校确定的复试分数线为考生进入复试的最低要求,我校各招生学院可根据生源情况向上调整复试分数线.考生能否进入复试以各招生学院最终公布的复试分数线为准 ...

  9. 基于Python-turtle库绘制哆啦A梦和大雄在一起

    源码: # -*- coding: utf-8 -*- from turtle import * import turtlespeed(0) penup() seth(180) fd(200) set ...

最新文章

  1. Linux学习之获取帮助
  2. 征集并发文献译者之Disruptor
  3. 怎么一键排版_做了这么久的PPT!终于找到可以自动排版的插件了
  4. ストアドプロシージャ(存储过程)
  5. boost::callable_traits的remove_member_volatile_t的测试程序
  6. Matlab变量、分支语句和循环语句
  7. CPU的主频,总线频率和L2缓存对电脑的性能有哪些影响
  8. [COCI 2017-2018-2]-San
  9. python socket.error: [Errno 24] Too many open files
  10. java中main方法返回类型是6_[单选] Java application中的主类需包含main方法,main方法的返回类型是什么()。...
  11. 平台式可复用的应用集成能力,助您敏捷、高效的完成企业数字化转型
  12. c语言编写贪吃蛇难点解析,刚学C语言,想写一个贪吃蛇的代码
  13. java 解析xml文件
  14. FileSystemObject详解
  15. Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
  16. Mathematica图像处理
  17. デュナリス / 风奶
  18. excel表格打印每页都有表头_教你一招Excel打印技巧:每页有表头标题,阅读起来是真方便...
  19. 手机上可以拍一寸证件照吗
  20. r710服务器系统故障排除,DELL R710服务器安装windows sever2008 故障排除经历(一)硬件排错...

热门文章

  1. 摇杆控制方向原理_图文全面讲解多种方向控制阀的原理和区别....
  2. java获取系统当前时间格式化_java 获取系统当前时间并格式化
  3. php分页上一页下一页判断,分页(上一页,下一页)
  4. mysql 字符集测试_MySQL多字符集备份恢复测试
  5. 有多个python版本_python 多版本共存
  6. expr命令 linux,Shell expr命令进行整数计算的实现
  7. flask总结之session,websocket,上下文管理
  8. 精读《你不知道的javascript》中卷
  9. td过长,将固定宽度table撑开
  10. Mysql远程登录及常用命令