1625-5 王子昂 总结《2017年6月25日》 【连续第266天总结】
A. Crackme(10)
B. 回头尝试一下三星难度的,第一个5由于正在装XP系统所以明天再解决
10号是VB,送入IDA无法识别函数,估计是P-CODE,拖入VB Decompile,成功反编译出源码,只有一个按钮:
Private Sub Command1_Click() '401E20
loc_00401EC2: var_58 = Text1.Text
loc_00401EFA: var_44 = var_58
loc_00401F56: For var_24 = 1 To Len(var_44) Step 1
loc_00401F68:
loc_00401F6A: If var_104 = 0 Then GoTo loc_0040202B
loc_00401FA3: var_58 = CStr(Mid(var_44, CLng(var_24), 1))
loc_00401FB0: Asc(var_58) = Asc(var_58) + 000Ah
loc_00401FC4: var_84 = Chr$(Asc(var_58))
loc_00401FED: var_34 = var_34 & Chr$(Asc(var_58))
loc_00402020: Next var_24
loc_00402026: GoTo loc_00401F68
loc_0040202B: 'Referenced from: 00401F6A
loc_00402053: If (var_34 = "kXy^rO|*yXo*m\kMuOn*+") = 0 Then GoTo loc_00402119
loc_00402059: Beep
loc_00402090: var_B4 = "RiCHTiG !"
loc_004020AF: var_A4 = " RiCHTiG !!!! .... weiter mit dem Nächsten !!!"
loc_004020FC: var_54 = MsgBox(" RiCHTiG !!!! .... weiter mit dem Nächsten !!!", 48, "RiCHTiG !", 10, 10)
loc_00402114: GoTo loc_004021CE
loc_00402119: 'Referenced from: 00402053
loc_0040214A: var_B4 = "LEiDER Falsch ! "
loc_00402169: var_A4 = "Leider Falsch! Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir ! Andrenalin@gmx.net"
loc_004021B6: var_54 = MsgBox("Leider Falsch! Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir ! Andrenalin@gmx.net", 16, "LEiDER Falsch ! ", 10, 10)
loc_004021CE: 'Referenced from: 00402114
loc_004021E1: GoTo loc_00402217
loc_00402216: Exit Sub
loc_00402217: 'Referenced from: 004021E1
loc_00402248: GoTo loc_00esi
End Sub
异常的简单,循环处理,每个字符的ASCII加0xA然后连起来与明码“kXy^rO|*yXo*m\kMuOn*+”比对,那把这个逆回去太简单了……得到flag:"aNoThEr oNe cRaCkEd !"
在OD中跟了一遍,FOR循环和NEXT都使用了API,这个理解有点难度,其他都很简单啊
循环完成以后进行strcmp的API,然后一个关键跳,爆破很轻松,追码也没难度,字符和ASCII数值的转换都是调用的API,OD直接识别,+0xA再转回字符很明显
C. 明日计划
Crackme(5)