cheat-engine/Cheat Engine/frmStringPointerScanUnit.lfm

780 lines
21 KiB
Text

object frmStringPointerScan: TfrmStringPointerScan
Left = 431
Height = 530
Top = 242
Width = 813
AutoSize = True
Caption = 'Structure spider'
ClientHeight = 510
ClientWidth = 813
Menu = MainMenu1
OnClose = FormClose
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '1.6.0.4'
object Panel1: TPanel
Left = 0
Height = 490
Top = 0
Width = 188
Align = alLeft
AutoSize = True
BevelOuter = bvNone
ClientHeight = 490
ClientWidth = 188
TabOrder = 0
object edtStructsize: TEdit
AnchorSideLeft.Control = lblStructsize
AnchorSideTop.Control = lblStructsize
AnchorSideTop.Side = asrBottom
Left = 87
Height = 23
Top = 23
Width = 80
TabOrder = 0
Text = '4096'
end
object lblStructsize: TLabel
AnchorSideLeft.Control = Panel5
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel5
Left = 87
Height = 15
Top = 8
Width = 50
BorderSpacing.Left = 3
Caption = 'Structsize'
ParentColor = False
end
object edtRegExp: TEdit
AnchorSideLeft.Control = lblString
AnchorSideTop.Control = lblString
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 20
Height = 23
Top = 330
Width = 164
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 9
end
object cbMustBeStart: TCheckBox
AnchorSideLeft.Control = cbRegExp
AnchorSideTop.Control = cbCaseSensitive
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 311
Width = 89
Caption = 'Must be start'
Enabled = False
TabOrder = 8
end
object cbCaseSensitive: TCheckBox
AnchorSideLeft.Control = cbRegExp
AnchorSideTop.Control = cbRegExp
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 292
Width = 93
Caption = 'Case sensitive'
Enabled = False
TabOrder = 7
end
object cbRegExp: TCheckBox
AnchorSideLeft.Control = rbStringscan
AnchorSideTop.Control = rbStringscan
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 273
Width = 164
BorderSpacing.Left = 16
BorderSpacing.Right = 4
Caption = 'Strings must match reg exp'
OnChange = cbRegExpChange
TabOrder = 6
end
object rbStringscan: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = Panel4
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 254
Width = 78
Caption = 'String scan'
OnChange = rbDatascanChange
TabOrder = 5
end
object rbDatascan: TRadioButton
AnchorSideLeft.Control = rbStringscan
AnchorSideTop.Control = edtRegExp
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 353
Width = 71
Caption = 'Data scan'
OnChange = rbDatascanChange
TabOrder = 10
end
object edtAlignsize: TEdit
AnchorSideLeft.Control = lblAlign
AnchorSideTop.Control = lblAlign
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 20
Height = 23
Top = 387
Width = 164
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 11
Text = '4'
end
object lblAlign: TLabel
AnchorSideLeft.Control = rbDatascan
AnchorSideTop.Control = rbDatascan
AnchorSideTop.Side = asrBottom
Left = 20
Height = 15
Top = 372
Width = 47
BorderSpacing.Left = 16
Caption = 'Alignsize'
Enabled = False
ParentColor = False
end
object edtPointerStart: TEdit
AnchorSideLeft.Control = cbPointerInRange
AnchorSideTop.Control = cbPointerInRange
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 4
Height = 23
Top = 67
Width = 180
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 2
end
object cbPointerInRange: TCheckBox
AnchorSideLeft.Control = Panel5
AnchorSideTop.Control = Panel5
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 48
Width = 150
BorderSpacing.Top = 2
Caption = 'Pointer must be in range'
OnChange = cbPointerInRangeChange
TabOrder = 1
end
object lblAnd: TLabel
AnchorSideLeft.Control = cbPointerInRange
AnchorSideTop.Control = edtPointerStart
AnchorSideTop.Side = asrBottom
Left = 4
Height = 15
Top = 90
Width = 20
Caption = 'and'
Enabled = False
ParentColor = False
end
object edtPointerStop: TEdit
AnchorSideLeft.Control = cbPointerInRange
AnchorSideTop.Control = lblAnd
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 4
Height = 23
Top = 105
Width = 180
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 3
end
object lblString: TLabel
AnchorSideLeft.Control = cbMustBeStart
AnchorSideTop.Control = cbMustBeStart
AnchorSideTop.Side = asrBottom
Left = 20
Height = 15
Top = 330
Width = 34
Caption = 'String:'
Enabled = False
ParentColor = False
end
object Panel4: TPanel
AnchorSideLeft.Control = edtPointerStop
AnchorSideTop.Control = edtPointerStop
AnchorSideTop.Side = asrBottom
Left = 4
Height = 122
Top = 132
Width = 148
AutoSize = True
BorderSpacing.Top = 4
BevelOuter = bvNone
ClientHeight = 122
ClientWidth = 148
TabOrder = 4
object rbDiffDontCare: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = Panel4
Left = 0
Height = 19
Top = 0
Width = 148
Caption = 'Don''t care for difference'
Checked = True
Enabled = False
OnChange = rbDiffDontCareChange
TabOrder = 0
TabStop = True
end
object rbMustBeDifferent: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = rbDiffDontCare
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Top = 19
Width = 111
Caption = 'Must be different'
Enabled = False
OnChange = rbDiffDontCareChange
TabOrder = 1
end
object rbMustBeSame: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = rbMustBeDifferent
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Top = 38
Width = 114
Caption = 'Must be the same'
Enabled = False
OnChange = rbDiffDontCareChange
TabOrder = 2
end
object comboCompareType: TComboBox
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = lblCompare
AnchorSideTop.Side = asrBottom
Left = 16
Height = 23
Top = 72
Width = 124
BorderSpacing.Left = 16
Enabled = False
ItemHeight = 15
ItemIndex = 3
Items.Strings = (
'String'
'1 Byte'
'2 Bytes'
'4 Bytes'
'8 Bytes'
'Float'
'Double'
'Pointer (hex)'
)
OnChange = comboTypeChange
Style = csDropDownList
TabOrder = 3
Text = '4 Bytes'
end
object lblCompare: TLabel
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = rbMustBeSame
AnchorSideTop.Side = asrBottom
Left = 0
Height = 15
Top = 57
Width = 75
Caption = 'Compare type'
Enabled = False
ParentColor = False
end
object cbMapPointerValues: TCheckBox
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = comboCompareType
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Hint = 'During the scan the values of pointer will be stored in memory for quick lookup when the same address is encountered again'#13#10'If the pointerlist has mostly unique addresses this can cause you to get out of memory errors'#13#10#13#10'Enabled: Fast- Memory gobbler'#13#10'Disabled: Slower- Not too much memory eaten'
Top = 103
Width = 148
BorderSpacing.Top = 8
Caption = 'Store values during scan'
Checked = True
ParentShowHint = False
ShowHint = True
State = cbChecked
TabOrder = 4
end
end
object Panel5: TPanel
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
Left = 4
Height = 38
Top = 8
Width = 80
AutoSize = True
BorderSpacing.Left = 4
BorderSpacing.Top = 8
BevelOuter = bvNone
ClientHeight = 38
ClientWidth = 80
TabOrder = 12
object edtMaxLevel: TEdit
AnchorSideLeft.Control = Panel5
AnchorSideTop.Control = lblMaxLevel
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 15
Width = 80
TabOrder = 0
Text = '2'
end
object lblMaxLevel: TLabel
AnchorSideLeft.Control = Panel5
AnchorSideTop.Control = Panel5
Left = 0
Height = 15
Top = 0
Width = 52
Caption = 'Max Level'
ParentColor = False
end
end
object Panel8: TPanel
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel9
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel1
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 41
Top = 449
Width = 188
Anchors = [akTop, akLeft, akRight, akBottom]
AutoSize = True
BevelOuter = bvNone
ClientHeight = 41
ClientWidth = 188
TabOrder = 13
object lblInfo: TLabel
Left = 0
Height = 15
Top = 26
Width = 188
Align = alBottom
Caption = 'Info'
ParentColor = False
end
end
object Panel9: TPanel
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = edtAlignsize
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 0
Height = 39
Top = 410
Width = 188
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BevelOuter = bvNone
ClientHeight = 39
ClientWidth = 188
TabOrder = 14
object btnNewScan: TButton
AnchorSideLeft.Control = Panel9
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = Panel9
Left = 54
Height = 25
Top = 7
Width = 80
AutoSize = True
BorderSpacing.Top = 7
BorderSpacing.Bottom = 7
Caption = 'New Scan'
Constraints.MinWidth = 80
OnClick = miNewScanClick
TabOrder = 0
Visible = False
end
object btnScan: TButton
AnchorSideLeft.Control = Panel9
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = Panel9
Left = 54
Height = 25
Top = 7
Width = 80
AutoSize = True
BorderSpacing.Left = 7
BorderSpacing.Top = 7
BorderSpacing.Right = 4
BorderSpacing.Bottom = 7
Caption = 'Scan'
Constraints.MinWidth = 80
OnClick = btnScanClick
TabOrder = 1
end
end
end
object Panel2: TPanel
Left = 188
Height = 490
Top = 0
Width = 625
Align = alClient
BevelOuter = bvNone
ClientHeight = 490
ClientWidth = 625
TabOrder = 1
object ListView1: TListView
Left = 0
Height = 354
Top = 136
Width = 625
Align = alClient
Columns = <>
OwnerData = True
PopupMenu = pmPointerfile
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport
OnCustomDrawItem = ListView1CustomDrawItem
OnData = ListView1Data
OnDblClick = ListView1DblClick
end
object Panel3: TPanel
Left = 0
Height = 136
Top = 0
Width = 625
Align = alTop
AutoSize = True
BevelOuter = bvNone
ClientHeight = 136
ClientWidth = 625
TabOrder = 1
object lblExtra: TLabel
AnchorSideLeft.Control = Panel6
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel6
Left = 133
Height = 15
Top = 8
Width = 90
BorderSpacing.Left = 6
Caption = 'Compare against'
ParentColor = False
end
object edtExtra: TEdit
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = lblExtra
AnchorSideTop.Side = asrBottom
Left = 133
Height = 23
Top = 23
Width = 127
OnChange = edtExtraChange
TabOrder = 0
end
object cbHasShadow2: TCheckBox
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = edtExtra
AnchorSideTop.Side = asrBottom
Left = 133
Height = 19
Hint = 'Use this if you''re spidering a previously saved memory region that currently resides in a different location.'#13#10'Most commonly used for stacks where stack pointers point to it''s own structure'
Top = 48
Width = 85
BorderSpacing.Top = 2
Caption = 'Has Shadow'
OnChange = cbHasShadowChange
ParentShowHint = False
ShowHint = True
TabOrder = 1
end
object edtShadowAddress2: TEdit
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = cbHasShadow2
AnchorSideTop.Side = asrBottom
Left = 133
Height = 23
Top = 67
Width = 127
OnChange = edtBaseChange
TabOrder = 2
Visible = False
end
object lblsize2: TLabel
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = edtShadowAddress2
AnchorSideTop.Side = asrBottom
Left = 133
Height = 15
Top = 90
Width = 20
Caption = 'Size'
ParentColor = False
Visible = False
end
object edtShadowSize2: TEdit
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = lblsize2
AnchorSideTop.Side = asrBottom
Left = 133
Height = 23
Top = 105
Width = 80
BorderSpacing.Bottom = 8
OnChange = edtBaseChange
TabOrder = 3
Visible = False
end
object Panel6: TPanel
AnchorSideLeft.Control = Panel3
AnchorSideTop.Control = Panel3
Left = 0
Height = 120
Top = 8
Width = 127
AutoSize = True
BorderSpacing.Top = 8
BorderSpacing.Bottom = 8
BevelOuter = bvNone
ClientHeight = 120
ClientWidth = 127
TabOrder = 4
object edtShadowSize: TEdit
AnchorSideLeft.Control = lblSize
AnchorSideTop.Control = lblSize
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 97
Width = 80
OnChange = edtBaseChange
TabOrder = 0
Visible = False
end
object lblSize: TLabel
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = edtShadowAddress
AnchorSideTop.Side = asrBottom
Left = 0
Height = 15
Top = 82
Width = 20
Caption = 'Size'
ParentColor = False
Visible = False
end
object edtShadowAddress: TEdit
AnchorSideLeft.Control = cbHasShadow
AnchorSideTop.Control = cbHasShadow
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 59
Width = 127
OnChange = edtBaseChange
TabOrder = 1
Visible = False
end
object cbHasShadow: TCheckBox
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = edtBase
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Hint = 'Use this if you''re spidering a previously saved memory region that currently resides in a different location.'#13#10'Most commonly used for stacks where stack pointers point to it''s own structure'
Top = 40
Width = 85
BorderSpacing.Top = 2
Caption = 'Has Shadow'
OnChange = cbHasShadowChange
ParentShowHint = False
ShowHint = True
TabOrder = 2
end
object edtBase: TEdit
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = lblBaseRegion
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 15
Width = 127
OnChange = edtBaseChange
TabOrder = 3
end
object lblBaseRegion: TLabel
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = Panel6
Left = 0
Height = 15
Top = 0
Width = 61
Caption = 'Base region'
ParentColor = False
end
end
object Panel7: TPanel
AnchorSideLeft.Control = edtExtra
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel3
AnchorSideRight.Control = Panel3
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel3
AnchorSideBottom.Side = asrBottom
Left = 268
Height = 136
Top = 0
Width = 357
Anchors = [akTop, akLeft, akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BevelOuter = bvNone
ClientHeight = 136
ClientWidth = 357
TabOrder = 5
object lblvds: TLabel
AnchorSideTop.Control = Panel7
AnchorSideRight.Control = Panel7
AnchorSideRight.Side = asrBottom
Left = 249
Height = 15
Top = 8
Width = 108
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
Caption = 'Variable display type'
ParentColor = False
end
object comboType: TComboBox
AnchorSideTop.Control = lblvds
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel7
AnchorSideRight.Side = asrBottom
Left = 233
Height = 23
Top = 23
Width = 124
Anchors = [akTop, akRight]
ItemHeight = 15
ItemIndex = 0
Items.Strings = (
'String'
'1 Byte'
'2 Bytes'
'4 Bytes'
'8 Bytes'
'Float'
'Double'
'Pointer (hex)'
)
OnChange = comboTypeChange
Style = csDropDownList
TabOrder = 0
Text = 'String'
end
end
end
end
object ProgressBar1: TProgressBar
Left = 0
Height = 20
Top = 490
Width = 813
Align = alBottom
Max = 1000
TabOrder = 2
end
object SaveDialog1: TSaveDialog
DefaultExt = '.sptr'
Filter = 'String pointer (*.sptr)|*.sptr'
Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
left = 480
top = 64
end
object MainMenu1: TMainMenu
left = 197
top = 168
object MenuItem1: TMenuItem
Caption = 'File'
object MenuItem7: TMenuItem
Caption = 'New Window'
OnClick = MenuItem7Click
end
object MenuItem4: TMenuItem
Caption = '-'
end
object miNewScan: TMenuItem
Caption = 'New scan'
OnClick = miNewScanClick
end
object MenuItem3: TMenuItem
Caption = 'Open'
OnClick = MenuItem3Click
end
end
object MenuItem5: TMenuItem
Caption = 'Rescan'
Visible = False
object MenuItem6: TMenuItem
Caption = 'Filter pointerlist'
OnClick = MenuItem6Click
end
end
end
object OpenDialog1: TOpenDialog
DefaultExt = '.sptr'
Filter = 'String pointer (*.sptr)|*.sptr'
left = 552
top = 64
end
object statusupdater: TTimer
Enabled = False
Interval = 500
OnTimer = statusupdaterTimer
left = 464
top = 208
end
object pmPointerfile: TPopupMenu
left = 400
top = 112
object miClearCache: TMenuItem
Caption = 'Clear pointer cache'
OnClick = miClearCacheClick
end
end
end