object frmStringPointerScan: TfrmStringPointerScan Left = 602 Height = 534 Top = 171 Width = 813 AutoSize = True Caption = 'Structure spider' ClientHeight = 514 ClientWidth = 813 Menu = MainMenu1 OnClose = FormClose OnCreate = FormCreate OnDestroy = FormDestroy OnShow = FormShow Position = poScreenCenter LCLVersion = '2.2.2.0' object Panel1: TPanel Left = 0 Height = 494 Top = 0 Width = 189 Align = alLeft AutoSize = True BevelOuter = bvNone ClientHeight = 494 ClientWidth = 189 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 = 349 Width = 165 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 = 330 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 = 311 Width = 93 Caption = 'Case sensitive' Enabled = False TabOrder = 7 end object cbRegExp: TCheckBox AnchorSideLeft.Control = rbStringscan AnchorSideTop.Control = cbReuseStringmap AnchorSideTop.Side = asrBottom Left = 20 Height = 19 Top = 292 Width = 165 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 = 372 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 = 406 Width = 165 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 = 391 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 = 181 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 = 181 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 = 349 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 = 53 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 = 26 Top = 468 Width = 189 Anchors = [akTop, akLeft, akRight, akBottom] AutoSize = True BevelOuter = bvNone ClientHeight = 26 ClientWidth = 189 TabOrder = 13 object lblInfo: TLabel Left = 0 Height = 15 Top = 11 Width = 189 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 = 429 Width = 189 Anchors = [akTop, akLeft, akRight] AutoSize = True BevelOuter = bvNone ChildSizing.LeftRightSpacing = 8 ChildSizing.HorizontalSpacing = 8 ChildSizing.EnlargeHorizontal = crsHomogenousSpaceResize ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 2 ClientHeight = 39 ClientWidth = 189 TabOrder = 14 object btnNewScan: TButton AnchorSideLeft.Side = asrCenter Left = 10 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.Side = asrCenter Left = 100 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 object cbReuseStringmap: TCheckBox AnchorSideLeft.Control = rbStringscan AnchorSideTop.Control = rbStringscan AnchorSideTop.Side = asrBottom Left = 20 Height = 19 Top = 273 Width = 140 BorderSpacing.Left = 16 Caption = 'Use existing stringmap' Checked = True OnChange = cbReuseStringmapChange State = cbChecked TabOrder = 15 end end object Panel2: TPanel Left = 189 Height = 494 Top = 0 Width = 624 Align = alClient BevelOuter = bvNone ClientHeight = 494 ClientWidth = 624 TabOrder = 1 object ListView1: TListView Left = 0 Height = 358 Top = 136 Width = 624 Align = alClient Columns = <> HideSelection = False 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 = 624 Align = alTop AutoSize = True BevelOuter = bvNone ClientHeight = 136 ClientWidth = 624 TabOrder = 1 OnClick = Panel3Click 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 = 356 Anchors = [akTop, akLeft, akRight, akBottom] AutoSize = True BorderSpacing.Left = 8 BevelOuter = bvNone ClientHeight = 136 ClientWidth = 356 TabOrder = 5 object lblvds: TLabel AnchorSideTop.Control = Panel7 AnchorSideRight.Control = Panel7 AnchorSideRight.Side = asrBottom Left = 249 Height = 15 Top = 8 Width = 107 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 = 232 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 = 494 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 Images = spImageList Left = 197 Top = 168 object MenuItem1: TMenuItem Caption = 'File' object MenuItem7: TMenuItem Caption = 'New Window' ImageIndex = 0 OnClick = MenuItem7Click end object MenuItem4: TMenuItem Caption = '-' end object miNewScan: TMenuItem Caption = 'New scan' ImageIndex = 1 OnClick = miNewScanClick end object miOpen: TMenuItem Caption = 'Open' ImageIndex = 2 OnClick = miOpenClick 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 Images = spImageList Left = 400 Top = 112 object miClearCache: TMenuItem Caption = 'Clear pointer cache' ImageIndex = 4 OnClick = miClearCacheClick end object miFind: TMenuItem Caption = 'Find...' ImageIndex = 3 ShortCut = 16454 OnClick = miFindClick end object miFindNext: TMenuItem Caption = 'Find Next' Enabled = False ShortCut = 114 OnClick = FindDialog1Find end end object FindDialog1: TFindDialog Options = [frDown, frHideWholeWord, frHideUpDown, frDisableUpDown, frHideEntireScope, frHidePromptOnReplace] OnFind = FindDialog1Find Left = 268 Top = 243 end object spImageList: TImageList Left = 430 Top = 307 Bitmap = { 4C7A050000001000000010000000B10300000000000078DADD966B4853611880 AD4565A44951FD8894CA6E14FD48BA43A09949D6BF88022DC14C0B21A421A158 C3CD9C792B0BC5DB9C4BA7194E837029C3164E33EC62D27096B5E5654E4B3092 79DFDBF79EB53AADB39367F387F6C2C377F6BDEFF39DEFBCE7DB9826612B1832 76B293421012520949845BD65173CDEA42891F3BD9849B845C829090671D0D22 B24E6E0040D30D7634CCA06BA8B808CE06BAACFE40BB1567FDEA702BF3C5EF69 06A8BBFA1BA9BF15FA1CD638F2DF3F06B81FF49B827D56E87358F3BFF6CF3E3A 6AAC38EBCFE0FC6A4407C05019E314E892709B938C0C7882FC848102AFB9FADF 8D5ED4EF0C82D773DDC767C43A1BFD6D3EBF7CBCA6E798FA817DB2D5FF0BAC9D 6DDFD5FDCFF7F737DBE7778EA1EBD4AD3F1CEB5767329938F7029D83B7B769F7 BF5B0BC16907D42323234B66EA626DA078EF3374917DED6BE0B438A4626A6A6A 01E6331F560BB2EB9E5228540D27EDFDA0B301777C533D4D7E9AD5948FE32691 A7E9FCA5B038CCEFAF6A8010A385C2FFC5C7E99CCAAA48FB350C06C3D21DF295 948F237EB6E5E83E72E4750F041555BE3D5EA26823BC09CE97B704644B5ED0FD 888CBB12473E13C17A33D0FD63F9F2B6D9F67D73AAC02BAB9A9115190A582614 C2F23411357A5C2F1ADD2894B66D8FE0ABD03FF6E11B2C4EAB81458F7A387136 5B9687FE2E592DF0AA3F7372790F3AA1A6F64920FAABD22B39DFDBF38674606C 6C8CB73335177805CF39FB61F74A73B07F5EE76239BBBCF20EB277A53FFA1BCE 446B492F755CD87E45D842F6BE70B6BEDB52A9345C2010A8FF059FCF7FAA52A9 F6D8FB242798E97F96A8A828A34EA75BE7AC6F369B213434F4E5F0F0B03B9B5F 5F5F0F62B118D2D3D3A951A954FECAF5F5F58148248A63F2474747213131111A 1B1BFF58AFB9B919121212A8FB63FC74FEF2535252A0BFBF9F71EF838383785F 877E6F6F2F141616B23EBF4C2603BD5ECFE82B140AE8EAEA62F5BBBBBBA1BCBC 9CD12F2B2B03A3D1C8EA0F0D0D41717131A3DFDADA4AF59D2DD46A3534353531 FA168B05E2E3E3A9D151607E7A7ADA61FFB55A2D242727C3C4C4C41FDEE4E424 F5FE44E4F78BEDFD61607F85A42E3333134A4B4B212B2B0B929292402291808F B73794488A587D5B8C8F8F536701475BD4296B618B873BF02F47DF75E6FC6334 D43E06EF456E968AA2C2535CBEBF7462222FE4B4BF7AB979BEFF2FA1F3F50B78 4486815CFF09BCED73388739AC71E4637EF75680A387E0137D0DBCC639CC618D 239F5E675B83698EED19ECEBB9B84C6B70755DF55DD9BFABFD73F5FDB97A7EE6 233F00469623A3 } end end