Reverse break the 160 CrackMe - 013

CrackMe —— 013

160 CrackMe reverse is more suitable for novice learning to crack a collection of a total of 160 to be reverse to crack the program CrackMe

CrackMe : they are open to a number of others try to crack the small programs, people may be making crackme programmer, want to test their software protection technology, it could be a cracker, want to challenge the strength of other cracker to crack, but also It may be some people who are learning to crack, own small programs to their break.

CrackMe referred to as CM.
Program Download: Click me

Source  <- Click to view

Numbering Author Protection
013 badboy Name/Serial,Serial(VB5)

 

 

 

tool 

x32dbg

VB Decompiler Pro

peid

Start cracking tour

ON.1

First, open the program using x32dbg search string, I found that only four strings, not what we want, do not be encrypted?

Next we use pedi open the program to see if the shell was found and did not add any shell

 

ON.2

We use VB Decompiler Pro Open 013 program in the left column click on Code -> Form1 drop down and found that more Click function

We click on the first Click (Combo1_Click)

A closer look we find the secret key generated code, the red box

var 88 = current day * 23 + 2 + number of the current month of the current year * 1900 *

var 1d0 = (var 88 + var 88) + 14 * 1905 the current day current day + 14 * 1905

Some would say why multiplied by 1900

Since VB inside Year (3) => 1900, Year (2020) => 1905

Here is the Python code

import datetime
now = datetime.datetime.now()
var_88 = now.day * 22 + now.month * 1 + now.year * 1900
var_1d0 = var_88 * 2 + 13 * 1905 * 2

我们点击CrackMe 1.0在输入框内输入答案点击Try,bingo ~ 答案正确

接下来我们来看CrackMe 2.0

我们点击第二个Click(Combo2_Click)

将其转换为Python代码为

var_94 = '0110617121214051216101106141404110614140411091211100810101608040610121608100416'
name = 'lonenysky'
var_90 = 0
var_a8 = 1
for i in range(3, len(name)):
    var_90 = var_90 + (ord(name[i]) * int(var_94[var_a8 * 3 - 1:var_a8 * 3 - 1 + 3]))
    var_a8 += 1
    if var_a8 + 1 >= 39:
        var_a8 = 0
var_178 = 0
var_a8 = 1
for i in range(3, len(name)):
    var_1cc = ord(name[i]) * ord(name[i - 1]) * int(var_94[var_a8 * 2 - 1:var_a8 * 2 - 1 + 2])
    var_178 = var_178 + var_1cc
    var_a8 += 1
    if var_a8 + 1 >= 39:
        var_a8 = 0
print(str(var_90) + '-' + str(var_178))

 输入Name =>lonenysky Serial => 145533-911038 点击按钮Try ,提示答案正确

 

Guess you like

Origin www.cnblogs.com/lonenysky/p/11370649.html