Crackme 31

这里写图片描述
无壳
利用OD找关键字符串
这里写图片描述
利用VB Decompiler静态分析

Private Sub Command1_Click() '402B40
  Dim Me As Me
  Dim var_58 As TextBox
  loc_00402BD3: Set var_58 = Me
  loc_00402BE2: var_50 = Text1.Text
  loc_00402C14: var_28 = var_50
  loc_00402C2B: var_68 = Len(var_28)
  loc_00402C32: var_68 = CInt(Me)
  loc_00402C44: var_118 = var_68
  loc_00402C5F: If 00000001h > var_68 Then GoTo loc_00402D54
  loc_00402C83: var_78 = Mid(var_28, 1, 1)                         ;每次取一个字符
  loc_00402CB7: var_54 = CStr(Left(4, 1))                            ;字符4
  loc_00402CC7: var_50 = CStr(var_78)                                
  loc_00402CD9: var_A8 = Chr(Asc(var_54) xor edx)                   ;s1 =chr( ord('4')^ord(逐个字符))
  loc_00402CFC: var_38 = var_38 & var_A8                             ;s += s1
  loc_00402D42: 00000001h = 00000001h + 1
  loc_00402D4C: var_3C = 00000001h+var_3C
  loc_00402D4F: GoTo loc_00402C52
  loc_00402D54: 'Referenced from: 00402C5F
  loc_00402D63: var_68 = Len(var_38)
  loc_00402D6A: var_68 = CInt(var_58)
  loc_00402D75: var_120 = var_68
  loc_00402D87: If 00000001h > var_68 Then GoTo loc_00402EBA
  loc_00402D92: If var_18 <= 4 Then GoTo loc_00402D97
  loc_00402D97: 'Referenced from: 00402D92
  loc_00402DB1: call Asc(var_54) xor edx(var_78, var_38, 00000001h, 2, @Asc(%StkVar1), Asc(var_54) xor edx)
  loc_00402DEF: call Asc(var_54) xor edx(var_A8, 2, var_18, 2)
  loc_00402E0C: var_50 = CStr(var_78)                    
  loc_00402E41: var_4C = var_4C & Chr(Asc(CStr(var_A8)) xor ecx)       ;string += chr(ord(s[i])^ord("2000"逐个字符))//2000是测试出来的并没有直接看出来
  loc_00402E8D: edx = var_18 + 1
  loc_00402EA0: 00000001h = 00000001h + var_3C
  loc_00402EA4: var_18 = var_18 + 1
  loc_00402EB2: var_3C = 00000001h+var_3C
  loc_00402EB5: GoTo loc_00402D80
  loc_00402EBA: 'Referenced from: 00402D87
  loc_00402EE2: If (var_4C = "VeiajeEjbavwij") = 0 Then GoTo loc_00402F89    ;string"VeiajeEjbavwij"比对
  loc_00402F2B: var_78 = "Invalid"
  loc_00402F46: var_68 = "Password incorrect, please try again ..."
  loc_00402F87: GoTo loc_00402F99
  loc_00402F89: 'Referenced from: 00402EE2
  loc_00402F99: 'Referenced from: 00402F87
  loc_00402FC1: If (var_4C = "VeiajeEjbavwij") = 0 Then GoTo loc_00403056
  loc_00402FFA: var_78 = "Valid"
  loc_00403015: var_68 = "Password correct, hehe, :-)"
  loc_00403056: 'Referenced from: 00402FC1
  loc_00403062: GoTo loc_004030B7
  loc_004030B6: Exit Sub
  loc_004030B7: 'Referenced from: 00403062
  loc_004030CA: GoTo loc_00esi
  loc_004030CC: Exit Sub
End Sub

在下面设置断点发现了“2000”的存在
这里写图片描述

name 654321
ECX  2  1  0  7   6   5
EBX  32 30 30 30  32  30

直接写出exploit

name = "VeiajeEjbavwij"
string = "2000"
i = 0
s = ''
for char in name:
    s += chr(ord(char)^ord(string[i%4]))
    i += 1
s1 = ''
for j in s:
    s1 += chr(ord(j)^0x34)
print s1

这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 [安全攻防进阶篇] 中,有关于逆向分析的教程可以帮助你了解如何使用OllyDbg逆向CrackMe程序。 OllyDbg是一种常用的逆向工具,可以用于分析和修改程序的执行流程和内存。使用内存断点和普通断点,可以在程序执行过程中捕获关键的代码位置,帮助我们找到CrackMe程序的OEP(Original Entry Point),即程序的入口点。 在 [安全攻防进阶篇] 中还有关于逆向分析两个CrackMe程序的详细教程,包括逆向分析和源码还原的步骤。这些教程将帮助你理解逆向分析的基本概念和技巧,提升你的安全能力。 如果你想深入学习如何使用OllyDbg逆向CrackMe程序,可以参考这些教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [[安全攻防进阶篇] 六.逆向分析之OllyDbg逆向CrackMe01-02及加壳判断](https://blog.csdn.net/Eastmount/article/details/107777190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [逆向crackme之ESp定律脱壳](https://blog.csdn.net/qq_58970968/article/details/125357834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值