吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2330|回复: 45
收起左侧

[原创] 练习笔记之160Crackme-030

  [复制链接]
xiaoyu2032 发表于 2022-7-24 10:29

160CM-030

1. 爆破

  爆破比较简单,搜索关键字符,找到第一个跳转位置00403370     /0F84 E8000000 je cracking.0040345E,将这行代码nop掉就可以了。

2. 算法分析

  用VB Decompiler反编译,找到关键响应事件代码如下:

Private Sub Command1_Click() '4030F0
  loc_004031BE: var_28 = password.Text1.Text
  loc_004031FC: If 1 <= CInt(Len(var_28)) Then           '小于字符串长度时执行
  loc_00403206:   If 1 > 4 Then
  loc_0040320D:   End If
  loc_00403291:   var_800C = Asc(CStr(Mid(2000, 1, 1)))
  loc_004032CD:   var_38 = var_38 & Chr(Asc(CStr(Mid(var_28, 1, 1))) xor ecx)       '字符依次与ecx中的内容异或运算
  loc_0040332A:   GoTo loc_004031EF
  loc_0040332F: End If
  loc_00403370: If (var_38 = "qBQSYdXUe_B\V") Then                                  '运算后得到的字符串与"qBQSYdXUe_B\V"要相同
  loc_004033CC:   var_8014 = MsgBox("Password correct, hehe, :-)", 0, "Valid", var_78, var_88)
  loc_0040343D:   var_8020 = Global.Unload password
  loc_0040345E: Else
  loc_004034B4:   var_8024 = MsgBox("Password incorrect, please try again ...", 0, "Invalid", var_78, var_88)
  loc_004034D8: End If
  loc_004034E4: GoTo loc_00403536
  loc_00403535: Exit Sub
  loc_00403536: ' Referenced from: 004034E4
  loc_00403544: GoTo loc_00esi
End Sub

  从伪代码来看,基本可以看出是将输入的密码字符串依次进行异或运算,然后得到新的字符串与"qBQSYdXUe_B\V"进行比较。异或运算中有个ecx寄存器中的值从上述伪代码中看不出来源,将“程序分析器和优化”选项取消后,再反汇编,得到如下代码:

01.png

  从中可以打开猜测ecx为依次取字符串”2000“中的第i个字符的ASCII码值,i>4时再重复。再OD中跟踪一下,可以确认猜测无误。使用vs2015编写VB注册算法程序如下:

Module Module1

    Sub Main()
        Dim key As String
        Dim SN As String
        key = "qBQSYdXUe_B\V"
        SN = ""
        Console.WriteLine("key= " + key)
        Dim i As Int32
        Dim j As Int32
        Dim length As Int32
        length = Len(key)
        For i = 1 To length
            j = i Mod 4
            If j = 0 Then j = 4
            SN = SN + Chr(Asc(Mid(key, i, 1)) Xor Asc(Mid("2000", j, 1)))
        Next
        Console.WriteLine("注册码为: " + SN)
        Console.WriteLine("按回车键退出程序!")
        Console.ReadLine()
    End Sub

End Module

  运算后得到注册码为CrackTheWorld,输入程序输入框,验证正确。

02.png

3. 总结

  这道题难度也不大,借助反编译后的伪代码,可以很容易的得到算法的大框架,具体细节再借助OD跟踪确认后,就能得到完整的算法过程了。

免费评分

参与人数 4吾爱币 +9 热心值 +3 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Pather + 1 我很赞同!
L9651165 + 1 已经处理,感谢您对吾爱破解论坛的支持!
Bbcoq + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| xiaoyu2032 发表于 2022-7-27 11:50
watiger 发表于 2022-7-26 22:30
有些太省略,看不太懂

你需要从前面的看起,前面的写的详细一些
头像被屏蔽
FirstExecution 发表于 2022-7-24 10:32
EXiaoLu 发表于 2022-7-24 11:25
Altababa 发表于 2022-7-24 11:56
6666666666666666666
xinfw 发表于 2022-7-24 12:22
感谢分享
yu520 发表于 2022-7-24 12:28
厉害,学习,学习
zhihuidemeili 发表于 2022-7-24 15:22
666666666666666666666666666666666
jensenyin 发表于 2022-7-24 15:23
感谢分享
zhangzifu 发表于 2022-7-24 17:13
太棒了,虽然我看不懂...
15028352577 发表于 2022-7-24 18:15
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 21:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表