The following code is the content of the regarding .pbf file as it should be. If you open it in form mode and re-generate the code you'll see that the menu structure gets messed up. And if you diff those two states you'll see the reason why.
Note: Replace those images with any small PNG.
Code: Select all
; Form Designer for Purebasic - 5.21
; Warning: this file uses a strict syntax, if you edit it, make sure to respect the Form Designer limitation or it won't be opened again.
Global Window_Main
Enumeration FormGadget
#Text_Main_ProcmonFile
#String_Main_ProcmonFile
#Button_Main_ProcmonFile
#Text_Main_WindumpFile
#String_Main_WindumpFile
#Button_Main_WindumpFile
#Canvas_Main_Graph
#Button_Main_Refresh
#Checkbox_Main_ModeNoPaths
#Checkbox_Main_ModeCompressed
#Text_Main_Launcher
#String_Main_Launcher
#Button_Main_Launcher
#Checkbox_Main_ModeDumb
#Canvas_Main_AnimationFrames
#Button_Main_AnimationFirst
#Button_Main_RenderingOptions
#Button_Main_AnimationPrevious
#Button_Main_AnimationPlay
#Button_Main_AnimationStop
#Button_Main_AnimationNext
#Button_Main_AnimationLast
#Image_Main_CertLogo
#Button_Main_AnimationShow
#Combo_Main_AnimationFPS
#Button_Main_AnimationFramesUnique
#Button_Main_AnimationFramesAll
#Button_Main_AnimationFramesAllRle
EndEnumeration
Enumeration FormMenu
#MenuItem_New
#MenuItem_Open
#MenuItem_Save
#MenuItem_SaveAs
#MenuItem_Export
#MenuItem_Exit
#MenuItem_Find
#MenuItem_ResetFind
#MenuItem_Filters
#MenuItem_Colors
#MenuItem_Options
#MenuItem_Refresh
#MenuItem_TimelineFramesModeAll
#MenuItem_TimelineFramesModeAllRle
#MenuItem_TimelineFramesModeUnique
#MenuItem_TimelineViewCurrentFrame
#MenuItem_TimelineNextFrame
#MenuItem_TimelinePreviousFrame
#MenuItem_TimelineFirstFrame
#MenuItem_TimelineLastFrame
#MenuItem_TimelinePlayStopAnimation
#MenuItem_ManageSessionFilters4Servers
#MenuItem_ManageSessionFilters4Registry
#MenuItem_ManageSessionFilters4Files
#MenuItem_ManageSessionFilters4SFn2LFn
#MenuItem_ManageGlobalFilters4Servers
#MenuItem_ManageGlobalFilters4Registry
#MenuItem_ManageGlobalFilters4Files
#MenuItem_ManageGlobalFilters4SFn2LFn
#MenuItem_PluginsManager
#MenuItem_Plugin1
#MenuItem_Plugin2
#MenuItem_Plugin3
#MenuItem_Plugin4
#MenuItem_Plugin5
#MenuItem_Plugin6
#MenuItem_Plugin7
#MenuItem_Plugin8
#MenuItem_Plugin9
#MenuItem_Legend
#MenuItem_QuickHelp
#MenuItem_CheckForUpdate
#MenuItem_Donate
#MenuItem_Credits
#MenuItem_About
EndEnumeration
Enumeration FormImage
#Img_Window_Main_0
#Img_Window_Main_1
#Img_Window_Main_2
#Img_Window_Main_3
#Img_Window_Main_4
#Img_Window_Main_5
#Img_Window_Main_6
#Img_Window_Main_7
#Img_Window_Main_8
#Img_Window_Main_9
#Img_Window_Main_10
#Img_Window_Main_11
EndEnumeration
UsePNGImageDecoder()
CatchImage(#Img_Window_Main_0,?Img_Window_Main_0)
CatchImage(#Img_Window_Main_1,?Img_Window_Main_1)
CatchImage(#Img_Window_Main_2,?Img_Window_Main_2)
CatchImage(#Img_Window_Main_3,?Img_Window_Main_3)
CatchImage(#Img_Window_Main_4,?Img_Window_Main_4)
CatchImage(#Img_Window_Main_5,?Img_Window_Main_5)
CatchImage(#Img_Window_Main_6,?Img_Window_Main_6)
CatchImage(#Img_Window_Main_7,?Img_Window_Main_7)
CatchImage(#Img_Window_Main_8,?Img_Window_Main_8)
CatchImage(#Img_Window_Main_9,?Img_Window_Main_9)
CatchImage(#Img_Window_Main_10,?Img_Window_Main_10)
CatchImage(#Img_Window_Main_11,?Img_Window_Main_11)
Procedure OpenWindow_Main(x = 0, y = 0, width = 800, height = 600)
Window_Main = OpenWindow(#PB_Any, x, y, width, height, #APP_Name, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_Invisible | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
SetWindowColor(Window_Main, RGB(255,255,255))
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Control | #PB_Shortcut_N, #MenuItem_New)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Control | #PB_Shortcut_O, #MenuItem_Open)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Control | #PB_Shortcut_S, #MenuItem_Save)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Control | #PB_Shortcut_F, #MenuItem_Find)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Escape, #MenuItem_ResetFind)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_F5, #MenuItem_Refresh)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Return, #MenuItem_TimelineViewCurrentFrame)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Right, #MenuItem_TimelineNextFrame)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Left, #MenuItem_TimelinePreviousFrame)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Home, #MenuItem_TimelineFirstFrame)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_End, #MenuItem_TimelineLastFrame)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_Space, #MenuItem_TimelinePlayStopAnimation)
AddKeyboardShortcut(Window_Main, #PB_Shortcut_F1, #MenuItem_Legend)
CreateStatusBar(0, WindowID(Window_Main))
AddStatusBarField(50)
StatusBarText(0, 0, "Status:", #PB_StatusBar_BorderLess)
AddStatusBarField(100)
StatusBarText(0, 1, "OK")
AddStatusBarField(50)
StatusBarText(0, 2, "Zoom:", #PB_StatusBar_BorderLess)
AddStatusBarField(50)
StatusBarText(0, 3, "100%")
AddStatusBarField(50)
StatusBarText(0, 4, "Frame:", #PB_StatusBar_BorderLess)
AddStatusBarField(120)
StatusBarText(0, 5, "N/A")
AddStatusBarField(50)
StatusBarText(0, 6, " Time:", #PB_StatusBar_BorderLess)
AddStatusBarField(120)
StatusBarText(0, 7, "N/A")
AddStatusBarField(2000)
StatusBarText(0, 8, " ", #PB_StatusBar_BorderLess)
CreateMenu(0, WindowID(Window_Main))
MenuTitle("File")
MenuItem(#MenuItem_New, "New ..." + Chr(9) + "Ctrl+N")
MenuItem(#MenuItem_Open, "Open ..." + Chr(9) + "Ctrl+O")
MenuItem(#MenuItem_Save, "Save" + Chr(9) + "Ctrl+S")
MenuItem(#MenuItem_SaveAs, "Save as ...")
MenuItem(#MenuItem_Export, "Export ...")
MenuBar()
MenuItem(#MenuItem_Exit, "Exit")
MenuTitle("Edit")
MenuItem(#MenuItem_Find, "Find ..." + Chr(9) + "Ctrl+F")
MenuItem(#MenuItem_ResetFind, "Reset find" + Chr(9) + "Escape")
MenuBar()
OpenSubMenu("Configuration")
MenuItem(#MenuItem_Filters, "Filters ...")
MenuItem(#MenuItem_Colors, "Colors ...")
CloseSubMenu()
MenuItem(#MenuItem_Options, "Options ...")
MenuTitle("View")
MenuItem(#MenuItem_Refresh, "Refresh" + Chr(9) + "F5")
OpenSubMenu("Timeline")
OpenSubMenu("Frames-Mode")
MenuItem(#MenuItem_TimelineFramesModeAll, "All events")
MenuItem(#MenuItem_TimelineFramesModeAllRle, "All events (RLE)")
MenuItem(#MenuItem_TimelineFramesModeUnique, "Unique events")
CloseSubMenu()
MenuItem(#MenuItem_TimelineViewCurrentFrame, "View current frame" + Chr(9) + "Return")
MenuBar()
MenuItem(#MenuItem_TimelineNextFrame, "Next frame" + Chr(9) + "Right")
MenuItem(#MenuItem_TimelinePreviousFrame, "Previous frame" + Chr(9) + "Left")
MenuItem(#MenuItem_TimelineFirstFrame, "First frame" + Chr(9) + "Home")
MenuItem(#MenuItem_TimelineLastFrame, "Last frame" + Chr(9) + "End")
MenuBar()
MenuItem(#MenuItem_TimelinePlayStopAnimation, "Play/Stop animation" + Chr(9) + "Space")
CloseSubMenu()
MenuTitle("Filters")
OpenSubMenu("Session")
MenuItem(#MenuItem_ManageSessionFilters4Servers, "Servers ...")
MenuItem(#MenuItem_ManageSessionFilters4Registry, "Registry ...")
MenuItem(#MenuItem_ManageSessionFilters4Files, "Files ...")
MenuItem(#MenuItem_ManageSessionFilters4SFn2LFn, "Short filename to long filename ...")
CloseSubMenu()
OpenSubMenu("Global")
MenuItem(#MenuItem_ManageGlobalFilters4Servers, "Servers ...")
MenuItem(#MenuItem_ManageGlobalFilters4Registry, "Registry ...")
MenuItem(#MenuItem_ManageGlobalFilters4Files, "Files ...")
MenuItem(#MenuItem_ManageGlobalFilters4SFn2LFn, "Short filename to long filename ...")
CloseSubMenu()
MenuTitle("Plugins")
MenuItem(#MenuItem_PluginsManager, "Plugins-Manager")
MenuBar()
MenuItem(#MenuItem_Plugin1, "1: ")
MenuItem(#MenuItem_Plugin2, "2: ")
MenuItem(#MenuItem_Plugin3, "3: ")
MenuItem(#MenuItem_Plugin4, "4: ")
MenuItem(#MenuItem_Plugin5, "5: ")
MenuItem(#MenuItem_Plugin6, "6: ")
MenuItem(#MenuItem_Plugin7, "7: ")
MenuItem(#MenuItem_Plugin8, "8: ")
MenuItem(#MenuItem_Plugin9, "9: ")
MenuTitle("?")
MenuItem(#MenuItem_Legend, "Graph legend ..." + Chr(9) + "F1")
MenuItem(#MenuItem_QuickHelp, "Quick help ...")
MenuBar()
MenuItem(#MenuItem_CheckForUpdate, "Check for update ...")
MenuBar()
MenuItem(#MenuItem_Donate, "Donate ...")
MenuItem(#MenuItem_Credits, "Credits ...")
MenuItem(#MenuItem_About, "About ...")
TextGadget(#Text_Main_ProcmonFile, 110, 12, 110, 20, "Procmon-CSV:", #PB_Text_Right)
SetGadgetColor(#Text_Main_ProcmonFile, #PB_Gadget_BackColor,RGB(255,255,255))
StringGadget(#String_Main_ProcmonFile, 230, 10, 200, 22, "")
ButtonGadget(#Button_Main_ProcmonFile, 430, 10, 20, 22, "...")
TextGadget(#Text_Main_WindumpFile, 460, 12, 130, 20, "Windump-File:", #PB_Text_Right)
SetGadgetColor(#Text_Main_WindumpFile, #PB_Gadget_BackColor,RGB(255,255,255))
StringGadget(#String_Main_WindumpFile, 600, 10, 170, 22, "")
ButtonGadget(#Button_Main_WindumpFile, 770, 10, 20, 22, "...")
CanvasGadget(#Canvas_Main_Graph, 0, 70, 800, 455, #PB_Canvas_Border | #PB_Canvas_Keyboard)
ButtonGadget(#Button_Main_Refresh, 730, 40, 60, 20, "Refresh")
GadgetToolTip(#Button_Main_Refresh, "Refresh graph with the currently selected options.")
CheckBoxGadget(#Checkbox_Main_ModeNoPaths, 400, 40, 95, 20, "no paths")
GadgetToolTip(#Checkbox_Main_ModeNoPaths, "This option lets you specify if files and registry-keys should show up with full qualified paths or not.")
CheckBoxGadget(#Checkbox_Main_ModeCompressed, 495, 40, 125, 20, "compressed")
GadgetToolTip(#Checkbox_Main_ModeCompressed, "This mode collects specific types of registry-keys and files in categories reducing the size of the graph.")
TextGadget(#Text_Main_Launcher, 110, 40, 110, 20, "Launcher:", #PB_Text_Right)
SetGadgetColor(#Text_Main_Launcher, #PB_Gadget_BackColor,RGB(255,255,255))
StringGadget(#String_Main_Launcher, 230, 40, 130, 22, "", #PB_String_ReadOnly)
GadgetToolTip(#String_Main_Launcher, "The Launcher is the process that was so to say the entry-point of malicious activity.")
ButtonGadget(#Button_Main_Launcher, 360, 40, 20, 22, "...")
GadgetToolTip(#Button_Main_Launcher, "Select a process as Launcher.")
CheckBoxGadget(#Checkbox_Main_ModeDumb, 620, 40, 75, 20, "dumb")
GadgetToolTip(#Checkbox_Main_ModeDumb, "Dumb-mode disables smart-following-algorithms. Use this if you don't trust a clean looking situation or if you want to take a global glance at all system events.")
CanvasGadget(#Canvas_Main_AnimationFrames, 190, 527, 485, 22)
ButtonImageGadget(#Button_Main_AnimationFirst, 45, 527, 22, 22, ImageID(#Img_Window_Main_0))
GadgetToolTip(#Button_Main_AnimationFirst, "First frame")
ButtonImageGadget(#Button_Main_RenderingOptions, 698, 37, 25, 25, ImageID(#Img_Window_Main_11), #PB_Button_Toggle)
GadgetToolTip(#Button_Main_RenderingOptions, "Render-Options")
ButtonImageGadget(#Button_Main_AnimationPrevious, 67, 527, 22, 22, ImageID(#Img_Window_Main_1))
GadgetToolTip(#Button_Main_AnimationPrevious, "Previous frame")
ButtonImageGadget(#Button_Main_AnimationPlay, 89, 527, 22, 22, ImageID(#Img_Window_Main_2))
GadgetToolTip(#Button_Main_AnimationPlay, "Start/Stop animation")
DisableGadget(#Button_Main_AnimationPlay, 1)
ButtonImageGadget(#Button_Main_AnimationStop, 111, 527, 22, 22, ImageID(#Img_Window_Main_3))
GadgetToolTip(#Button_Main_AnimationStop, "Stop animation")
DisableGadget(#Button_Main_AnimationStop, 1)
ButtonImageGadget(#Button_Main_AnimationNext, 133, 527, 22, 22, ImageID(#Img_Window_Main_4))
GadgetToolTip(#Button_Main_AnimationNext, "Next frame")
ButtonImageGadget(#Button_Main_AnimationLast, 155, 527, 22, 22, ImageID(#Img_Window_Main_5))
GadgetToolTip(#Button_Main_AnimationLast, "Last frame")
ImageGadget(#Image_Main_CertLogo, 0, 0, 110, 70, ImageID(#Img_Window_Main_6))
ButtonImageGadget(#Button_Main_AnimationShow, 9, 526, 24, 24, ImageID(#Img_Window_Main_7), #PB_Button_Toggle)
GadgetToolTip(#Button_Main_AnimationShow, "This button toggles between normal- and frame-mode")
ComboBoxGadget(#Combo_Main_AnimationFPS, 690, 527, 60, 22)
GadgetToolTip(#Combo_Main_AnimationFPS, "Select your desired animation speed in frames per second (FPS)")
DisableGadget(#Combo_Main_AnimationFPS, 1)
ButtonImageGadget(#Button_Main_AnimationFramesUnique, 765, 526, 24, 24, ImageID(#Img_Window_Main_8))
GadgetToolTip(#Button_Main_AnimationFramesUnique, "Select your desired timeline-mode (All-Events, All-Events-RLE or Unique-Events).")
ButtonImageGadget(#Button_Main_AnimationFramesAll, 765, 526, 24, 24, ImageID(#Img_Window_Main_9))
GadgetToolTip(#Button_Main_AnimationFramesAll, "Select your desired timeline-mode (All-Events, All-Events-RLE or Unique-Events).")
ButtonImageGadget(#Button_Main_AnimationFramesAllRle, 765, 526, 24, 24, ImageID(#Img_Window_Main_10))
GadgetToolTip(#Button_Main_AnimationFramesAllRle, "Select your desired timeline-mode (All-Events, All-Events-RLE or Unique-Events).")
EndProcedure
DataSection
Img_Window_Main_0: : IncludeBinary "control-first.png"
Img_Window_Main_1: : IncludeBinary "control-previous.png"
Img_Window_Main_2: : IncludeBinary "control-play.png"
Img_Window_Main_3: : IncludeBinary "control-stop.png"
Img_Window_Main_4: : IncludeBinary "control-next.png"
Img_Window_Main_5: : IncludeBinary "control-last.png"
Img_Window_Main_6: : IncludeBinary "certlogo.png"
Img_Window_Main_7: : IncludeBinary "film.png"
Img_Window_Main_8: : IncludeBinary "sql-join-left.png"
Img_Window_Main_9: : IncludeBinary "sql-join-outer.png"
Img_Window_Main_10: : IncludeBinary "sql-join-outer-rle.png"
Img_Window_Main_11: : IncludeBinary "node-select.png"
EndDataSection
Didel.