2023-02-01에 쓸 예정
CodeEngn Challenge 링크 https://ch.codeengn.com/
CodeEngn.com [코드엔진]
코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다.
ch.codeengn.com
비주얼베이직에서 스트링 비교함수 이름은?
Author: Blaster99 [DCD]
File Password: codeengn
동영상: https://www.youtube.com/watch?v=xfACtfyb8ho
상세설명
사실은 완전히 재현하는데는 실패했다. 하지만 그 과정을 남기기 위해 글을 쓴다.
개발 도구인 Visual Basic 5.0을 설치하자 바이러스는 모르겠으니 개인의 선택에 맡기겠다.
https://winworldpc.com/product/microsoft-visual-bas/50
Microsoft Visual Basic 5.0
First released in 1991, Microsoft Visual Basic was a programming environment where one could build an application by visually creating the user interface first, and then adding code. In contrast, even the smallest Visual Basic basic programs could take rea
winworldpc.com
English로 다운받은 후 설치를 한다.(영상참고)
CD Key는 0401-3960953입니다.
설치후 Standard EXE를 열기한다.
이상태로 저장한다.
4개의 파일중 frm을 메모장으로 연다.
기본 form 코드
VB Decompiler로 Form 코드를 추출해보자
Form1을 클릭 후 Form을 클릭하면 코드가 나온다.
VERSION 5.00
Begin VB.Form Form1
Caption = "DCD VB5-CrackMe 1.0"
ScaleMode = 1
AutoRedraw = False
FontTransparent = True
BorderStyle = 1 'Fixed Single
Icon = "Form1.frx":0000
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ClientLeft = 1140
ClientTop = 1800
ClientWidth = 3735
ClientHeight = 2040
PaletteMode = 1
Begin VB.CommandButton Command2
Caption = "&Exit"
Left = 1680
Top = 1320
Width = 1215
Height = 495
TabIndex = 2
End
Begin VB.CommandButton Command1
Caption = "&Registrieren"
Left = 360
Top = 1320
Width = 1215
Height = 495
TabIndex = 1
End
Begin VB.TextBox Text1
Left = 1320
Top = 840
Width = 1815
Height = 285
TabIndex = 0
MaxLength = 10
End
Begin VB.Label Label3
ForeColor = &HC00000&
Left = 600
Top = 480
Width = 2100
Height = 195
TabIndex = 5
AutoSize = -1 'True
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Label Label2
Caption = "Digital Cracker Domain"
ForeColor = &HFF0000&
Left = 120
Top = 120
Width = 3450
Height = 360
TabIndex = 4
AutoSize = -1 'True
BackStyle = 0 'Transparent
BeginProperty Font
Name = "Arial"
Size = 15.75
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Label Label1
Caption = "Regcode :"
Left = 360
Top = 840
Width = 900
Height = 195
TabIndex = 3
AutoSize = -1 'True
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Menu mnuprog
Caption = "&Programm"
Begin VB.Menu mnuexit
Caption = "&Exit"
End
End
Begin VB.Menu mnuabout
Caption = "&Über"
End
End
Attribute VB_Name = "Form1"
위에 문자를 복사 붙여넣어서 저장하고 frm을 더블클릭하여 다시 VB 5.0 개발 도구를 연다.
성공적으로 Form이 복사되었다.
오른쪽에 View Code를 코드를 복사 붙여넣는다.
코드는 Code부분에 있는 것들을 클릭하여 복사 붙여넣기 후 약간의 수정을 해주면 된다.
처리전
Private Sub Command1_Click() '402814
Dim var_5C As Variant
loc_004028E3: If (Form1.Text1.Text = "2G83G35Hs2") + 1 Then
loc_004029CF: If (MsgBox("Glückwunsch !", CLng(CLng(49)), "Glückwunsch !", 10, 10) = 1) Then GoTo loc_00402B47
loc_004029D5: End
loc_004029DC: Else
loc_004029E7: End If
loc_004029EA: call var_8014 = var_C4(Me, Me, 0, 0, 0)
loc_004029F5: Set var_5C = var_C4(Me, Me, 0, 0, 0)
loc_00402A01: var_B0 = var_5C
loc_00402A5A: If (var_5C.MousePointer = "2G83G35Hs2") Then
loc_00402B38: var_8024 = (MsgBox("Error ! Das Passwort ist falsch !", CLng(CLng(22)), "PASSWORT FALSCH !", 10, 10) = 1)
loc_00402B40: If var_8024 = 0 Then
loc_00402B42: End
loc_00402B47: End If
loc_00402B47: End If
loc_00402B50: GoTo loc_00402B75
loc_00402B74: Exit Sub
loc_00402B75: ' Referenced from: 00402B50
loc_00402B90: GoTo loc_undef 'Ignore this '__vbaFreeVar
End Sub
처리후
Private Sub Command1_Click() '402814
Dim var_5C As Variant
If (Form1.Text1.Text = "2G83G35Hs2") + 1 Then
If (MsgBox("Glückwunsch !", CLng(CLng(49)), "Glückwunsch !", 10, 10) = 1) Then GoTo loc_00402B47
End
Else
End If
'무슨 용도인지 도저히 모르겠다... 전문가가 와서 만들어주길...
'call var_8014 = var_C4(Me, Me, 0, 0, 0)
'Set var_5C = var_C4(Me, Me, 0, 0, 0)
var_B0 = var_5C
If (var_5C.MousePointer = "2G83G35Hs2") Then
var_8024 = (MsgBox("Error ! Das Passwort ist falsch !", CLng(CLng(22)), "PASSWORT FALSCH !", 10, 10) = 1)
If var_8024 = 0 Then
End
End If
End If
loc_00402B47:
Exit Sub
End Sub
이런식으로 하면서 만들면된다.