📄 frmdisplay.frm
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Begin VB.Form FrmDisplay
Caption = "反编译图表"
ClientHeight = 7575
ClientLeft = 60
ClientTop = 450
ClientWidth = 11070
LinkTopic = "Form1"
ScaleHeight = 7575
ScaleWidth = 11070
StartUpPosition = 2 'CenterScreen
Begin VB.CommandButton BtnAddPro
Caption = "Add"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 450
Left = 6240
TabIndex = 12
Top = 6480
Width = 825
End
Begin VB.CommandButton BtnDelPro
Caption = "Del"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 450
Left = 6240
TabIndex = 11
Top = 6960
Width = 825
End
Begin VB.CommandButton BtnAddDB
Caption = "AddDB"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 450
Left = 7170
TabIndex = 10
Top = 6480
Width = 1560
End
Begin VB.CommandButton BtnAddDW
Caption = "AddDW"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 450
Left = 8835
TabIndex = 9
Top = 6480
Width = 1140
End
Begin VB.CommandButton BtnDelD
Caption = "DelData"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 450
Left = 7170
TabIndex = 8
Top = 6960
Width = 1560
End
Begin VB.CommandButton BtnSave
Caption = "保存"
BeginProperty Font
Name = "隶书"
Size = 21.75
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 945
Left = 10080
TabIndex = 7
Top = 6480
Width = 780
End
Begin VB.Frame FraSet
Height = 6225
Left = 6240
TabIndex = 2
Top = 120
Width = 4650
Begin VB.ListBox LPro
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 5580
ItemData = "FrmDisplay.frx":0000
Left = 120
List = "FrmDisplay.frx":0002
TabIndex = 4
Top = 480
Width = 1995
End
Begin VB.ListBox LData
BeginProperty Font
Name = "MS Sans Serif"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 5580
Left = 2115
TabIndex = 3
Top = 480
Width = 2445
End
Begin VB.Label Label1
Caption = "程序入口列表"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 285
Left = 135
TabIndex = 6
Top = 180
Width = 1995
End
Begin VB.Label Label2
Caption = "数据入口列表"
BeginProperty Font
Name = "隶书"
Size = 14.25
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 285
Left = 2250
TabIndex = 5
Top = 180
Width = 1995
End
End
Begin VB.CommandButton BtnClose
Caption = "关闭"
BeginProperty Font
Name = "隶书"
Size = 21.75
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 450
Left = 8835
TabIndex = 1
Top = 6960
Width = 1140
End
Begin MSFlexGridLib.MSFlexGrid MSFG
Height = 7335
Left = 120
TabIndex = 0
Top = 120
Width = 5655
_ExtentX = 9975
_ExtentY = 12938
_Version = 393216
End
Begin MSComDlg.CommonDialog CD
Left = 0
Top = 0
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
End
Attribute VB_Name = "FrmDisplay"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public mL As Long
Dim Fso As New FileSystemObject
Dim hFile As TextStream
Private Sub BtnAddDB_Click()
Dim X, Y As Long
Dim Addr As Long
Dim tl As String
X = MSFG.Row - 1
Y = MSFG.Col - 1
Addr = X * 16 + Y
tl = Hex(Addr)
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
With FrmAdd
.Show
.DType = 1
.TNAddr.Text = tl
.BtnOK.Visible = False
.BtnYes.Visible = True
End With
End Sub
Private Sub BtnAddDW_Click()
Dim X, Y As Long
Dim Addr As Long
Dim tl As String
X = MSFG.Row - 1
Y = MSFG.Col - 1
Addr = X * 16 + Y
tl = Hex(Addr)
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
With FrmAdd
.Show
.DType = 2
.TNAddr = tl
.BtnOK.Visible = False
.BtnYes.Visible = True
End With
End Sub
Private Sub BtnAddPro_Click()
Dim X, Y As Long
Dim Addr As Long
Dim tl As String
X = MSFG.Row - 1
Y = MSFG.Col - 1
Addr = X * 16 + Y
tl = Hex(Addr)
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
If Len(tl) < 4 Then tl = "0" + tl
ProIn(IP).Label = "L" + tl + ":"
ProIn(IP).Addr = Addr
IP = IP + 1
StartNASM
MSFGDisplay
LProDisplay
End Sub
Private Sub BtnClose_Click()
Unload Me
End Sub
Private Sub BtnDelD_Click()
Dim i As Long
'Dim TCP As MyPort
If LData.ListIndex <= 0 Or SP < 1 Then Exit Sub
For i = LData.ListIndex To SP
DataIn(i - 1) = DataIn(i)
Next i
DP = DP - 1
StartNASM
MSFGDisplay
LProDisplay
End Sub
Private Sub BtnDelPro_Click()
Dim i As Long
If LPro.ListIndex <= 0 Or IP < 1 Then Exit Sub
For i = LPro.ListIndex To IP
ProIn(i - 1) = ProIn(i)
Next i
IP = IP - 1
StartNASM
MSFGDisplay
LProDisplay
End Sub
Private Sub BtnTrans_Click()
End Sub
Private Sub BtnSave_Click()
Dim TS As String
Dim Num, i As Long
Dim Addr As Long
'Td.Text = "打开的十六进制文件内容为:"
CD.Filter = "*.Txt(十六进制文件)|*.TXT|*.ASM|*.ASM|*.A51|*.A51|*.*(所有文件)|*.*"
CD.ShowSave
SaveFilePathName = CD.FileName
If Left(Right(SaveFilePathName, 4), 1) = "." Then
TS = SaveFilePathName
SaveFilePathName = Left(SaveFilePathName, Len(SaveFilePathName) - 4)
Select Case CD.FilterIndex
Case 1:
SaveFilePathName = SaveFilePathName + ".TXT"
Case 2:
SaveFilePathName = SaveFilePathName + ".ASM"
Case 3:
SaveFilePathName = SaveFilePathName + ".A51"
Case Else
SaveFilePathName = TS
End Select
End If
'LStatus.Caption = "打开的文件:" + OpenFilePathName + " 保存的文件:" + SaveFilePathName
On Error GoTo EBtnLoad
Set hFile = Fso.OpenTextFile(SaveFilePathName, ForWriting, True)
For i = 0 To 65535
If Len(ASM(i)) > 0 Then hFile.WriteLine ASM(i)
Next i
hFile.WriteLine ""
hFile.WriteLine " END"
hFile.Close
Exit Sub
EBtnLoad:
MsgBox "打开文件失败!"
End Sub
Private Sub Form_Load()
Dim i As Long
'Dim mL As Long
Dim R As Long
Dim ttl As String
Dim X, Y As Long
LProDisplay
MSFG.Cols = 17
MSFG.ColWidth(0) = 500
MSFG.Row = 0
For i = 1 To 16
MSFG.Col = i
MSFG.ColWidth(i) = 300
ttl = Hex(i - 1)
If Len(ttl) < 2 Then ttl = "0" + ttl
MSFG.Text = ttl
Next i
For i = 65535 To 0 Step -1
If BD(i).D <> &HFF Then GoTo EndFor
Next i
EndFor:
mL = i
R = i \ 16 + 1
If R < 32 Then R = 32
MSFG.Rows = R + 1
MSFG.Col = 0
For i = 1 To R
MSFG.Row = i
ttl = Hex(16 * (i - 1))
If Len(ttl) < 4 Then ttl = "0" + ttl
If Len(ttl) < 4 Then ttl = "0" + ttl
If Len(ttl) < 4 Then ttl = "0" + ttl
If Len(ttl) < 4 Then ttl = "0" + ttl
MSFG.Text = ttl
Next i
If Not StartNASM Then
MsgBox "未打开文件或打开文件失败!" + L + L + "请打开十六进制文件后再试试!"
Exit Sub
End If
MSFGDisplay
End Sub
Public Sub LProDisplay()
Dim i As Long
Dim tl As String
FraSet.Visible = True
Me.Width = FraSet.Left + FraSet.Width + 200
LPro.Clear
LData.Clear
LPro.AddItem "行标号,入口地址", 0
For i = 1 To IP
LPro.AddItem ProIn(i - 1).Label + " " + MyHex(ProIn(i - 1).Addr), i
Next i
LData.AddItem "行标号 入口地址 类型 长度", 0
For i = 1 To DP
If DataIn(i - 1).DType Then
tl = "DB"
Else
tl = "DW"
End If
LData.AddItem DataIn(i - 1).Label + " " + MyHex(DataIn(i - 1).Addr) + " " + tl + " " + MyHex(DataIn(i - 1).Length), i
Next i
End Sub
Public Sub MSFGDisplay()
Dim i, X, Y As Long
Dim ttl As String
MSFG.Visible = False
For i = 0 To mL
X = i \ 16 + 1
Y = (i Mod 16) + 1
MSFG.Row = X
MSFG.Col = Y
ttl = Hex(BD(i).D)
If Len(ttl) < 2 Then ttl = "0" + ttl
MSFG.Text = ttl
If BD(i).F Then
MSFG.CellForeColor = RGB(255, 0, 0)
Else
MSFG.CellForeColor = RGB(0, 0, 0)
End If
Next i
MSFG.Visible = True
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -