【每日一个小程序】crackme之009

查壳发现vb语言写的,未加壳

【每日一个小程序】crackme之009_第1张图片

拖入od运行找消息弹窗函数显示调用就不说了,找到关键跳nop掉

【每日一个小程序】crackme之009_第2张图片

================================================================================================

寻找注册码

这里借助的软件是VB decompiler

找到关键代码

Private Sub Command1_Click() '401FF0

loc_00402092: var_58 = Text2.Text                 //输入的用户名

loc_004020CA: var_44 = var_58

loc_00402126: For var_24 = 1 To Len(var_44) Step 1      //循环开始

loc_00402132:

loc_00402134: If var_108 = 0 Then GoTo loc_004021D6

loc_00402169: var_58 = CStr(Mid(var_44, CLng(var_24), 1))       //逐个取出输入的字符串

loc_00402176: var_B4 = Asc(var_58)                                               //求出ascii码

loc_004021A0: var_34 = var_34 + Asc(var_58)                              //加到var_34中

loc_004021CB: Next var_24

loc_004021D1: GoTo loc_00402132

loc_004021D6: 'Referenced from: 00402134    

loc_00402204: var_34 = var_34 * 1234567890                   //循环结束后把结果转换十进制乘1234567890

loc_0040222F: call ebx(8, 00000001h, 00000004h, var_34, var_108, var_118, Me, undef 'Ignore this '__vbaFreeVarList, %ecx = %S_edx_S, 004041A0h)

loc_00402254: call ebx(8, 00000001h, 00000009h, var_34)

loc_00402276: var_58 = Text1.Text

loc_00402298: var_64 = var_58

loc_004022CB: If (var_58 = var_34) = 0 Then GoTo loc_00402391

loc_004022D1: Beep

loc_00402308: var_B4 = "RiCHTiG !"

loc_00402327: var_A4 = "  RiCHTiG !!!!  ....  weiter mit dem Nächsten !!!"

loc_00402374: var_54 = MsgBox("  RiCHTiG !!!!  ....  weiter mit dem Nächsten !!!", 48, "RiCHTiG !", 10, 10)

loc_0040238C: GoTo loc_00402446

loc_00402391: 'Referenced from: 004022CB

loc_004023C2: var_B4 = "LEiDER Falsch !  "

loc_004023E1: var_A4 = "Leider Falsch!  Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir !  [email protected]"

loc_0040242E: var_54 = MsgBox("Leider Falsch!  Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir !  [email protected]", 16, "LEiDER Falsch !  ", 10, 10)

loc_00402446: 'Referenced from: 0040238C

loc_00402459: GoTo loc_0040248F

loc_0040248E: Exit Sub

loc_0040248F: 'Referenced from: 00402459

loc_004024C0: GoTo loc_00esi

End Sub


发现输入后注册码不对,再来到OD


【每日一个小程序】crackme之009_第3张图片

发现在__vbaVarMul(乘法)函数后面还有__vbaMidStmtVa函数看了writeup是插入字符的函数,下面有push 0x4 和push 0x9应该就是这两个地方了。把第四个和第九个字符换为”-“就是正确的注册码了

你可能感兴趣的:(【每日一个小程序】crackme之009)