📄 extractrsrc.asm
字号:
title ExtractDlg - Normal Window with (.rc)
.586
.model flat, stdcall
option casemap:none ; Case sensitive
include L:\AsmEdit\include\windows.inc
include user32.inc
include GDI32.inc
include kernel32.inc
include comdlg32.inc
include comctl32.inc
include advapi32.inc
include ole32.inc
include oleaut32.inc
include L:\AsmEdit\include\DSPMACRO.asm
include ResEdit.inc
ViewImage PROTO :DWORD, :DWORD, :DWORD, :DWORD
BaseAscii PROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
CreateStreamOnHGlobal PROTO WINAPI :DWORD, :DWORD, :DWORD
OleLoadPicture PROTO WINAPI :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
MOVmd MACRO Var1, Var2
push Var2
pop Var1
ENDM
MOVmw MACRO Var1, Var2
pushad
lea esi, Var2
lea edi, Var1
repeat 2
mov al, [esi]
mov [edi], al
inc esi
inc edi
ENDM
popad
ENDM
.data
TreeVClass db 'SysTreeView32',0
AnimateClass db 'SysAnimate32',0
FontName db 'Courier New',0
AppName db 'Extract Resources',0
szError3 db 'This file has been compressed.',0Dh,0Ah
db 'You will need to decompress it first.',0
szError6 db 'Error Opening The File.',0
szError7 db 'There are no dialogs'
db 0Dh,0Ah
db 'for the requested file.',0
szError8 db 'There are no resources'
db 0Dh,0Ah
db 'for the requested file.',0
;szDlgNum db 2 dup(' ')
; db ' Dialog(s) have been extracted.',0dh,0ah
;szCtrlNum db 2 dup(' ')
; db ' Controls(s) have been extracted.',0dh,0ah,0
szAccess db 'This program is in use.'
db 0Dh,0Ah
db 'Would you like to open it as read only ?',0
szTitleO db 'Read File',0
szTitleS db 'Write File',0
szPE db 'Files Types(*.exe)-(*.dll)-(*.res)-(*.scr)',0,'*.exe;*.dll;*.res;*.scr',0,
'All Files',0,'*.*',0,0
szFilterI db 'Cursor (*.cur), Bitmap(*.bmp), Icon(*.ico)',0,'*.cur;*.bmp;*.ico',0,
'All Files',0,'*.*',0,0
szCur db '*.cur',0
szBmp db '*.bmp',0
szIco db '*.ico',0
szGif db '*.gif',0
szJpg db '*.jpg',0
szWmf db '*.wmf',0
szEmf db '*.emf',0
szAni db '*.ani',0
szAvi db '*.avi',0
szResources db 'Images',0
szTempAni db '\Temp.ani',0
szTempAvi db '\Temp.avi',0
;szRsrc00 db 'GIF',0
szRsrc01 db 'Cursors',0
szRsrc02 db 'Bitmaps',0
szRsrc03 db 'Icons',0
szRsrc04 db 'Menus',0
szRsrc05 db 'Dialogs',0
szRsrc06 db 'String Tables',0
szRsrc07 db 'Font Director',0
szRsrc08 db 'Font',0
szRsrc09 db 'Accelerator Tables',0
szRsrc10 db 'RCData',0
szRsrc11 db 'Message Tables',0 ;11
szRsrc12 db 'Group Cursors',0 ;12
szRsrc13 db ' ',0
szRsrc14 db 'Group Icons',0 ;14
szRsrc15 db ' ',0
szRsrc16 db 'Version Information',0 ;16
szRsrc17 db 'Dlg Include',0
szRsrc18 db ' ',0
szRsrc19 db 'Plug Play',0
szRsrc20 db 'VXD',0
szRsrc21 db 'Ani Cursor',0
szRsrc22 db 'Ani Icon',0
RsrcArray dd szRsrc01,szRsrc02,szRsrc03,szRsrc04,szRsrc05,szRsrc06,szRsrc07,szRsrc08,
szRsrc09,szRsrc10,szRsrc11,szRsrc12,szRsrc13,szRsrc14,szRsrc15,szRsrc16,
szRsrc17,szRsrc18,szRsrc19,szRsrc20,szRsrc21,szRsrc22
szMenuex db ' MENUEX DISCARDABLE',0
szMFTSTRING db 'MFT_STRING',0 ; = 0
szMFTSEPARATOR db 'MFT_SEPARATOR',0 ; = 800h
szMFSENABLED db 'MFS_ENABLED',0 ; = 0
szMFSGRAYED db 'MFS_GRAYED',0 ; = 3
szMFSCHECKED db 'MFS_CHECKED',0 ; = 8
szMenu db ' MENU DISCARDABLE',0
szBEGIN01 db 'BEGIN',0
szPopup db ' POPUP "',0
szBEGIN02 db ' BEGIN',0
szMENUITEM db ' MENUITEM "',0
szSEPARATOR db ' MENUITEM SEPARATOR',0
szEND02 db ' END',0
szEND01 db 'END',0
szGrayed db ', GRAYED',0
szChecked db ', CHECKED',0
szDlg db ' DIALOG LOADONCALL MOVEABLE DISCARDABLE ',0
szDlgEX db ' DIALOGEX LOADONCALL MOVEABLE DISCARDABLE ',0
szCapt db 'CAPTION ',0
szFont db 'FONT ',0
szSty db 'STYLE ',0
szEXSty db 'EXSTYLE ',0
szClass db 'CLASS ',0
szBegin db 'BEGIN',0dh,0ah,0
szCont db ' CONTROL ',0
szEnd db 'END',0dh,0ah,0
ButtClass db 'button',0
EditClass db 'edit',0
StaticClass db 'static',0
ListboxClass db 'listbox',0
ScrollClass db 'scrollbar',0
ComboClass db 'combobox',0
ClassArray dd ButtClass,EditClass,StaticClass,ListboxClass,ScrollClass,ComboClass
szVKaNA db ' ',0
szVKa01 db 'VK_BACK',0
szVKa02 db 'VK_TAB',0
szVKa03 db 'VK_CLEAR',0
szVKa04 db 'VK_RETURN',0
szVKa05 db 'VK_SHIFT',0
szVKa06 db 'VK_CONTROL',0
szVKa07 db 'VK_MENU',0
szVKa08 db 'VK_PAUSE',0
szVKa09 db 'VK_CAPITAL',0
szVKa10 db 'VK_ESCAPE',0
szVKa11 db 'VK_CONVERT',0
szVKa12 db 'VK_NONCONVERT',0
szVKa13 db 'VK_ACCEPT',0
szVKa14 db 'VK_MODECHANGE',0
szVKa15 db 'VK_SPACE',0
szVKa16 db 'VK_PGUP',0
szVKa17 db 'VK_PGDN',0
szVKa18 db 'VK_END',0
szVKa19 db 'VK_HOME',0
szVKa20 db 'VK_LEFT',0
szVKa21 db 'VK_UP',0
szVKa22 db 'VK_RIGHT',0
szVKa23 db 'VK_DOWN',0
szVKa24 db 'VK_SELECT',0
szVKa25 db 'VK_PRINT',0
szVKa26 db 'VK_EXECUTE',0
szVKa27 db 'VK_SNAPSHOT',0
szVKa28 db 'VK_INSERT',0
szVKa29 db 'VK_DELETE',0
szVKa30 db 'VK_HELP',0
VKaArray dd szVKa01,szVKa02,szVKaNA,szVKaNA,szVKa03,szVKa04,
szVKaNA,szVKaNA,szVKa05,szVKa06,szVKa07,szVKa08,
szVKa09,szVKaNA,szVKaNA,szVKaNA,szVKaNA,szVKaNA,
szVKaNA,szVKa10,szVKa11,szVKa12,szVKa13,szVKa14,
szVKa15,szVKa16,szVKa17,szVKa18,szVKa19,szVKa20,
szVKa21,szVKa22,szVKa23,szVKa24,szVKa25,szVKa26,
szVKa27,szVKa28,szVKa29,szVKa30
szVKb01 db 'VK_NUMPAD0',0
szVKb02 db 'VK_NUMPAD1',0
szVKb03 db 'VK_NUMPAD2',0
szVKb04 db 'VK_NUMPAD3',0
szVKb05 db 'VK_NUMPAD4',0
szVKb06 db 'VK_NUMPAD5',0
szVKb07 db 'VK_NUMPAD6',0
szVKb08 db 'VK_NUMPAD7',0
szVKb09 db 'VK_NUMPAD8',0
szVKb10 db 'VK_NUMPAD9',0
szVKb11 db 'VK_MULTIPLY',0
szVKb12 db 'VK_ADD',0
szVKb13 db 'VK_SEPARATOR',0
szVKb14 db 'VK_SUBTRACT',0
szVKb15 db 'VK_DECIMAL',0
szVKb16 db 'VK_DIVIDE',0
szVKb17 db 'VK_F1',0
szVKb18 db 'VK_F2',0
szVKb19 db 'VK_F3',0
szVKb20 db 'VK_F4',0
szVKb21 db 'VK_F5',0
szVKb22 db 'VK_F6',0
szVKb23 db 'VK_F7',0
szVKb24 db 'VK_F8',0
szVKb25 db 'VK_F9',0
szVKb26 db 'VK_F10',0
szVKb27 db 'VK_F11',0
szVKb28 db 'VK_F12',0
VKbArray dd szVKb01,szVKb02,szVKb03,szVKb04,szVKb05,szVKb06,
szVKb07,szVKb08,szVKb09,szVKb10,szVKb11,szVKb12,
szVKb13,szVKb14,szVKb15,szVKb16,szVKb17,szVKb18,
szVKb19,szVKb20,szVKb21,szVKb22,szVKb23,szVKb24,
szVKb25,szVKb26,szVKb27,szVKb28
szVKc01 db 'VK_NUMLOCK',0
szVKc02 db 'VK_SCROLL',0
VKcArray dd szVKc01,szVKc02
szACCEL db ' ACCELERATORS',0
szBEGIN db 'BEGIN',0
szVIRTKEY db 'VIRTKEY',0
szNOINVERT2 db 'NOINVERT',0
szNOINVERT db ', NOINVERT',0
szSHIFT db ', SHIFT',0
szSHIFT4 db 'SHIFT',0
szCONTROL db ', CONTROL',0
szCONTROL8 db 'CONTROL',0
szALT db ', ALT',0
szALT10 db 'ALT',0
szEND db 'END',0
szFill db ' ',0
szNeed db '*NEED*',0
szobject db 'object ',0
szMESSAGE db '1 MESSAGETABLE',0
szSTRING db 'STRINGTABLE DISCARDABLE',0
szVERINFO db ' VERSIONINFO',0
szVERFILE db 'FILEVERSION ',0
szVERPRODUCT db 'PRODUCTVERSION ',0
szFILEFLAGSM db 'FILEFLAGSMASK ',0
szFILEFLAGS db 'FILEFLAGS ',0
szFILEOS db 'FILEOS ',0
szFILETYPE db 'FILETYPE ',0
szFILESUBTYPE db 'FILESUBTYPE ',0
szFILEDATE db 'FILEDATE ',0
VersionArray dd szVERFILE,szVERPRODUCT,szFILEFLAGSM,szFILEFLAGS,szFILEOS,szFILETYPE,szFILESUBTYPE,szFILEDATE
szVarFileInfo db 'VarFileInfo',0
szBLOCK01 db ' BLOCK ',0
szBLOCK02 db ' BLOCK ',0
szBEGIN03 db ' BEGIN',0
szVALUE01 db ' VALUE "',0
szVALUE02 db ' VALUE "',0
szEND03 db ' END',0
sz0x db '0x',0
szQuote db '"',0
szComma db ',',0
szCommaS db ', ',0
szSpace db ' ',0
szMinus1 db '-1',0
szSlashB db '\',0
szSlashB0 db '\0',0
szNULL db 0
szCRLF db 0dh,0ah,0
fmat1 db '%01u',0
fmat2 db '%02u',0
szRedit db 'ResEdit',0
szREGSZ db 'REG_SZ',0
szResB db 'Last Binary',0
IID_IPicture dd 07bf80980h
dw 0bf32h
dw 0101ah
db 08bh,0bbh,0,0aah,0,030h,0ch,0abh
;0x7bf80980,0xbf32,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab
;{7bf80980-bf32-101a-8bbb00aa00300cab}
.data?
hREdit dd ?
hStatic dd ?
hAniCtrl dd ?
hIcon dd ?
MemRsrc dd ?
RsrcInfo dd ?
RsrcInfoGrp dd ?
hMem dd ?
pMem dd ?
hMemD dd ?
pMemD dd ?
hMemID dd ?
pMemID dd ?
hMap dd ?
pMap dd ?
hFile dd ?
SavpMap dd ?
RsrcSize dd ?
PE dd ?
CompressOn dd ?
NumOfSections dw ?
NumOfIDs dd ?
NumOfMatchIDs dd ?
SavAddr dd ?
SavSize dd ?
SavStart dd ?
SavOffset dd ?
ID dd ?
OffPosID dd ?
NumOfGroups dd ?
NumofDlgs dd ?
NumofCtrls dd ?
NumofItems dd ?
hParent dd ?
hChild dd ?
hImage dd ?
PictID dd ?
ImageID dd ?
hIC dd ?
Hold dd ?
BytesRead dd ?
ipPicture dd ?
hBitmap dd ?
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -