亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? easyunpack.asm

?? 也算是一個通用脫殼軟件吧
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
;========================
; 一塊三毛錢
; 2004.3.16
;========================

.386
.model flat, stdcall  ;32 bit memory model
option casemap :none  ;case sensitive

include EasyUnpack.inc

.code

start:

        invoke  GetModuleHandle, NULL
        mov     g_hInst, eax

        invoke  InitCommonControls
        invoke  DialogBoxParam, g_hInst, DLG_MAIN, NULL, addr DlgProc, NULL
        invoke  ExitProcess, 0

DlgProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM

        mov     eax, uMsg
        .if eax==WM_INITDIALOG
                invoke  _Init, hWnd
                
        .elseif eax==WM_COMMAND
                invoke  _Command, hWnd, wParam, lParam
                
        .elseif eax==WM_PAINT
                invoke  _Paint, hWnd
                
        .elseif eax==WM_DROPFILES
                invoke  DragQueryFile, wParam, 0, addr g_buffer, sizeof g_buffer
                invoke  GetFileAttributes, addr g_buffer
                and     eax, FILE_ATTRIBUTE_DIRECTORY
                .if !eax ;如果不是文件夾
                        invoke  SetWindowText, g_hFileCtl, addr g_buffer
                .endif
                invoke  DragFinish, wParam
                
        .elseif eax==WM_CLOSE
                invoke  EndDialog, hWnd, 0
        .else
                mov     eax,FALSE
                ret
        .endif
        mov     eax,TRUE
        ret
DlgProc endp

;處理按鈕消息
_Command proc hWnd:DWORD, wParam:DWORD, lParam:DWORD
        pushad
        mov     eax, wParam
        and     eax, 0ffffh
        .if eax==IDC_BTN_OPENFILE
                invoke  RtlZeroMemory, addr g_buffer, sizeof g_buffer
                mov     g_ofn.lStructSize, sizeof g_ofn
                m2m     g_ofn.hwndOwner, hWnd
                m2m     g_ofn.hInstance, g_hInst
                lea     eax, g_buffer
                mov     g_ofn.lpstrFile, eax
                mov     g_ofn.nMaxFile, sizeof g_buffer
                mov     g_ofn.Flags, OFN_FILEMUSTEXIST + OFN_PATHMUSTEXIST
                mov     g_ofn.lpstrFilter, offset g_szFilter
                mov     g_ofn.lpstrTitle, offset g_szOpenTitle
                invoke  GetOpenFileName, addr g_ofn
                .if eax
                        invoke  SetWindowText, g_hFileCtl, addr g_buffer
                .endif
        
        .elseif eax==IDC_CHK_OEP
                invoke  SendMessage, g_hChkOEP, BM_GETCHECK, 0, 0
                .if eax
                        invoke  EnableWindow, g_hOEP, TRUE
                .else
                        invoke  EnableWindow, g_hOEP, FALSE
                .endif
                
        .elseif eax==IDC_BTN_START
                invoke  _Unpack, hWnd
        .endif
        
        popad
        ret
_Command endp

;脫殼過程
_Unpack proc hWnd:DWORD
        LOCAL   szFile[1024] : BYTE
        LOCAL   hFile, hMapFile, pMemory
        LOCAL   dwImageBase, dwSizeOfImage, dwOrgOEP
        LOCAL   StartupInfo : STARTUPINFO
        LOCAL   ProcInfo : PROCESS_INFORMATION
        LOCAL   ProcInfo2: PROCESS_INFORMATION
        LOCAL   ProcInfo3: PROCESS_INFORMATION
        LOCAL   buf[256] : BYTE
        LOCAL   lpMem, dwOEP
        LOCAL   int3 : BYTE, org_code : BYTE
        LOCAL   dwCountBP
        LOCAL   DbgEvent : DEBUG_EVENT
        LOCAL   hFileDumped, dwSizeReturn
        
;--------------------------------------------------------------------------------
        ;初始化局部變量
        invoke  RtlZeroMemory, addr szFile, sizeof szFile
        xor     eax, eax
        mov     hFile, eax
        mov     hMapFile, eax
        mov     pMemory, eax
        mov     lpMem, eax
        mov     dwOEP, eax
        mov     int3, al
        mov     org_code, al
        mov     dwCountBP, eax
        mov     hFileDumped, eax
        mov     dwSizeReturn, eax
        invoke  RtlZeroMemory, addr StartupInfo, sizeof StartupInfo
        invoke  RtlZeroMemory, addr ProcInfo, sizeof ProcInfo
        invoke  RtlZeroMemory, addr ProcInfo2, sizeof ProcInfo2
        invoke  RtlZeroMemory, addr ProcInfo3, sizeof ProcInfo3
        invoke  RtlZeroMemory, addr DbgEvent, sizeof DbgEvent
        
;--------------------------------------------------------------------------------
        ;取得文件名
        invoke  SendMessage, g_hOutputCtl, LB_RESETCONTENT, 0, 0
        invoke  GetWindowText, g_hFileCtl, addr szFile, sizeof szFile
        .if eax==0
                invoke  _OutputInfo, g_hOutputCtl, CTXT("沒有指定文件!!!")
                jmp     l_exit
        .endif
        
;--------------------------------------------------------------------------------
        ;打開文件,創建內存映射文件,檢查文件是不是合法的 PE 文件
        invoke  CreateFile, addr szFile, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0
        .if eax==INVALID_HANDLE_VALUE
                invoke  _OutputInfo, g_hOutputCtl, CTXT("打開文件出錯!!!")
                jmp     l_exit
        .endif
        mov     hFile, eax
        invoke  CreateFileMapping, hFile, 0, PAGE_READONLY, 0, 0, 0
        .if !eax
                invoke  _OutputInfo, g_hOutputCtl, CTXT("創建內存映射文件出錯!!!")
                jmp     l_exit
        .endif
        mov     hMapFile, eax
        invoke  MapViewOfFile, hMapFile, FILE_MAP_READ, 0, 0, 0
        .if !eax
                invoke  _OutputInfo, g_hOutputCtl, CTXT("把文件映射進內存時出錯!!!")
                jmp     l_exit
        .endif
        mov     pMemory, eax
        mov     esi, eax
        assume  esi : ptr IMAGE_DOS_HEADER
        .if [esi].e_magic == IMAGE_DOS_SIGNATURE
                add     esi, [esi].e_lfanew
                assume  esi : ptr IMAGE_NT_HEADERS
                .if [esi].Signature == IMAGE_NT_SIGNATURE
                        jmp     @F
                .endif
        .endif
        invoke  _OutputInfo, g_hOutputCtl, CTXT("不是合法的 PE 文件!!!")
        jmp     l_exit
        @@:
        m2m     dwImageBase, [esi].OptionalHeader.ImageBase
        m2m     dwSizeOfImage, [esi].OptionalHeader.SizeOfImage
        m2m     dwOrgOEP, [esi].OptionalHeader.AddressOfEntryPoint
        mov     eax, dwImageBase
        add     dwOrgOEP, eax
        
;--------------------------------------------------------------------------------
        ;關閉內存映射文件,關閉文件
        invoke  UnmapViewOfFile, pMemory
        mov     pMemory, 0
        invoke  CloseHandle, hMapFile
        mov     hMapFile, 0
        invoke  CloseHandle, hFile
        mov     hFile, 0
        
;--------------------------------------------------------------------------------
        invoke  wsprintf, addr buf, CTXT("基地址: %08lXh"), dwImageBase
        invoke  _OutputInfo, g_hOutputCtl, addr buf
        invoke  wsprintf, addr buf, CTXT("映象大小: %08lXh"), dwSizeOfImage
        invoke  _OutputInfo, g_hOutputCtl, addr buf
        invoke  wsprintf, addr buf, CTXT("原始入口點: %08lXh"), dwOrgOEP
        invoke  _OutputInfo, g_hOutputCtl, addr buf
        invoke  _OutputInfo, g_hOutputCtl, CTXT("開始脫殼...")
        
;--------------------------------------------------------------------------------
        ;創建進程,準備查找入口點
        invoke  GetStartupInfo, addr StartupInfo
        mov     StartupInfo.dwFlags, STARTF_USESHOWWINDOW
        mov     StartupInfo.wShowWindow, SW_HIDE
        invoke  CreateProcess, NULL, addr szFile, NULL, NULL, NULL, NORMAL_PRIORITY_CLASS, \
                                NULL, NULL, addr StartupInfo, addr ProcInfo
        .if !eax
                invoke  _OutputInfo, g_hOutputCtl, CTXT("不能創建進程!!!")
                jmp     l_exit
        .endif
        invoke  WaitForInputIdle, ProcInfo.hProcess, INFINITE
        invoke  SuspendThread, ProcInfo.hThread
        invoke  wsprintf, addr buf, CTXT("已創建進程: PID=%08lXh"), ProcInfo.dwProcessId
        invoke  _OutputInfo, g_hOutputCtl, addr buf
        invoke  _OutputInfo, g_hOutputCtl, CTXT("查找入口點...")
        
;--------------------------------------------------------------------------------
        ;讀取進程內存
        invoke  GlobalAlloc, GMEM_ZEROINIT + GMEM_FIXED, dwSizeOfImage
        .if !eax
                invoke  _OutputInfo, g_hOutputCtl, CTXT("分配內存出錯!!!")
                jmp     l_exit
        .endif
        mov     lpMem, eax
        invoke  ReadProcessMemory, ProcInfo.hProcess, dwImageBase, lpMem, dwSizeOfImage, 0
        .if !eax
                invoke  wsprintf, addr buf, CTXT("讀取進程 (%08lXh) 內存出錯!!!"), ProcInfo.dwProcessId
                invoke  _OutputInfo, g_hOutputCtl, addr buf
                jmp     l_exit
        .endif
        invoke  TerminateProcess, ProcInfo.hProcess, 0
        invoke  CloseHandle, ProcInfo.hThread
        invoke  CloseHandle, ProcInfo.hProcess
        mov     ProcInfo.hProcess, 0
        
;--------------------------------------------------------------------------------
        ;查找入口點
        invoke  SendMessage, g_hChkOEP, BM_GETCHECK, 0, 0
        .if eax
                invoke  GetWindowText, g_hOEP, addr buf, 9
                invoke  htodw, addr buf
        .else
                invoke  _GetOEP, lpMem, dwSizeOfImage
                add     eax, dwImageBase
        .endif
        .if eax==0
                invoke  _OutputInfo, g_hOutputCtl, CTXT("找不到入口點")
                jmp     l_exit
        .endif
        mov     dwOEP, eax
        invoke  wsprintf, addr buf, CTXT("找到入口點: %08lXh"), eax
        invoke  _OutputInfo, g_hOutputCtl, addr buf
        
;--------------------------------------------------------------------------------
        ;創建調試進程
        invoke  CreateProcess, 0, addr szFile, 0, 0, 0, DEBUG_PROCESS + DEBUG_ONLY_THIS_PROCESS, 
                        0, 0, addr StartupInfo, addr ProcInfo2
        .if !eax
                invoke  _OutputInfo, g_hOutputCtl, CTXT("不能創建進程!!!")
                jmp     l_exit
        .endif
        .while TRUE
                invoke  WaitForDebugEvent, addr DbgEvent, INFINITE
                .if DbgEvent.dwDebugEventCode==EXIT_PROCESS_DEBUG_EVENT
                        ;下面這一行代碼很重要,否則被調試進程不會完全退出
                        invoke  ContinueDebugEvent, DbgEvent.dwProcessId, DbgEvent.dwThreadId, DBG_EXCEPTION_NOT_HANDLED
                        .break
                .elseif DbgEvent.dwDebugEventCode==EXCEPTION_DEBUG_EVENT
                        .if DbgEvent.u.Exception.pExceptionRecord.ExceptionCode==EXCEPTION_BREAKPOINT
                                inc     dwCountBP
                                .if dwCountBP==1        ;第一次中斷時在原始入口點處設置斷點
                                        invoke  _OutputInfo, g_hOutputCtl, CTXT("在原始入口點設置斷點...")
                                        mov     int3, 0CCh
                                        invoke  ReadProcessMemory, ProcInfo2.hProcess, dwOrgOEP, addr org_code, 1, 0
                                        invoke  WriteProcessMemory, ProcInfo2.hProcess, dwOrgOEP, addr int3, 1, 0
                                        
                                .elseif dwCountBP==2    ;第二次中斷,這次是中斷在原始入口點,在 OEP 處設置硬件斷點
                                        invoke  _OutputInfo, g_hOutputCtl, CTXT("到達原始入口點")
                                        
                                        mov     g_context.ContextFlags, CONTEXT_CONTROL
                                        invoke  GetThreadContext, ProcInfo2.hThread, addr g_context
                                        dec     g_context.regEip
                                        invoke  WriteProcessMemory, ProcInfo2.hProcess, dwOrgOEP, addr org_code, 1, 0
                                        invoke  SetThreadContext, ProcInfo2.hThread, addr g_context
                                        
                                        mov     g_context.ContextFlags, CONTEXT_DEBUG_REGISTERS
                                        invoke  GetThreadContext, ProcInfo2.hThread, addr g_context
                                        m2m     g_context.iDr0, dwOEP
                                        mov     g_context.iDr7, 1
                                        invoke  SetThreadContext, ProcInfo2.hThread, addr g_context
                                        
                                        invoke  wsprintf, addr buf, CTXT("在 OEP: %08lXh 處設置硬件斷點..."), dwOEP
                                        invoke  _OutputInfo, g_hOutputCtl, addr buf
                                .endif
                                invoke  ContinueDebugEvent, DbgEvent.dwProcessId, DbgEvent.dwThreadId, DBG_CONTINUE
                                .continue
                        .elseif DbgEvent.u.Exception.pExceptionRecord.ExceptionCode==EXCEPTION_SINGLE_STEP
                        ;第三次中斷,來到真正的入口點,抓取進程,然后終止進程
                                invoke  wsprintf, addr buf, CTXT("中斷在 OEP: %08lXh 處"), dwOEP
                                invoke  _OutputInfo, g_hOutputCtl, addr buf
                                invoke  _OutputInfo, g_hOutputCtl, CTXT("清除硬件斷點...")

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久品道一品道久久精品| 婷婷综合五月天| 日本不卡的三区四区五区| 国内久久精品视频| 在线观看av一区| 日本一区二区三区国色天香 | 国产日韩欧美一区二区三区乱码 | 欧美天天综合网| 久久久九九九九| 青椒成人免费视频| 色综合久久天天综合网| 久久久www免费人成精品| 日日摸夜夜添夜夜添精品视频 | 国产在线精品一区二区不卡了 | 久久影院视频免费| 亚洲成av人片在www色猫咪| 福利电影一区二区| 精品国产精品一区二区夜夜嗨| 婷婷综合五月天| 欧美午夜一区二区三区免费大片| 中文字幕在线播放不卡一区| 国产成人免费视频一区| 久久久久久久久久久黄色| 天堂一区二区在线| 欧美日韩一区 二区 三区 久久精品| 国产精品第一页第二页第三页| 国产中文一区二区三区| 欧美精品一区二区三区高清aⅴ| 日本免费在线视频不卡一不卡二 | 91精品国产91久久久久久一区二区 | 69堂国产成人免费视频| 亚洲一区二区三区国产| 91成人看片片| 国产精品色噜噜| 国产美女精品在线| 久久精品一区二区三区不卡牛牛 | 日韩欧美在线影院| 欧美aaaaa成人免费观看视频| 91麻豆精品91久久久久同性| 美国十次了思思久久精品导航| 欧美久久一二三四区| 亚洲激情一二三区| 欧美日韩中文字幕一区| 午夜精品久久久久久久99水蜜桃| 欧美伦理电影网| 久久99国产精品尤物| 国产亚洲欧美激情| av成人免费在线| 亚洲欧美在线另类| 欧美日韩在线精品一区二区三区激情| 日本免费新一区视频| 国产亚洲午夜高清国产拍精品| 成人免费不卡视频| 一区二区三区四区乱视频| 欧美三级视频在线播放| 久久精品久久精品| 欧美激情一区在线观看| 色综合中文字幕国产 | 精品999久久久| 成人性视频免费网站| 一区二区在线观看不卡| 精品视频一区三区九区| 蜜臂av日日欢夜夜爽一区| 国产精品乱人伦中文| 在线不卡免费av| 丰满白嫩尤物一区二区| 一区二区三区中文在线| 欧美精品一区二区蜜臀亚洲| 一本一道波多野结衣一区二区| 首页欧美精品中文字幕| 国产欧美一区二区三区鸳鸯浴| 色94色欧美sute亚洲线路一ni| 免费一级片91| 亚洲激情中文1区| xf在线a精品一区二区视频网站| 99久久久久久| 国内精品久久久久影院薰衣草| 亚洲最大成人综合| 久久久久国产精品麻豆| 欧美日韩国产在线播放网站| 国产精品99久久久久久似苏梦涵| 亚洲国产cao| 欧美激情资源网| 欧美人与禽zozo性伦| aaa亚洲精品一二三区| 视频一区欧美日韩| 玉足女爽爽91| 国产精品热久久久久夜色精品三区| 制服丝袜激情欧洲亚洲| 色哟哟亚洲精品| 成人国产精品视频| 久久99久国产精品黄毛片色诱| 一区二区欧美国产| 国产精品色哟哟| 久久久综合精品| 日韩一区二区三区免费观看| 欧美日韩一区国产| 91亚洲午夜精品久久久久久| 国产精品888| 国内精品在线播放| 久久疯狂做爰流白浆xx| 亚洲丰满少妇videoshd| 亚洲靠逼com| 亚洲日本成人在线观看| 国产精品视频一二| 国产精品理伦片| 国产精品天干天干在观线| 久久精品亚洲国产奇米99| 日韩午夜三级在线| 日韩片之四级片| 欧美sm极限捆绑bd| 久久综合色天天久久综合图片| 日韩欧美一区二区久久婷婷| 555夜色666亚洲国产免| 欧美高清一级片在线| 欧美日本在线看| 7777精品伊人久久久大香线蕉 | 国产欧美日韩亚州综合| 久久精子c满五个校花| 国产视频视频一区| 欧美激情在线观看视频免费| 国产精品美女久久久久久久久| 欧美国产激情一区二区三区蜜月| 亚洲国产电影在线观看| 国产精品私房写真福利视频| 国产精品久久久久久久久快鸭| 国产精品美女久久久久久久久久久 | 国产亚洲欧美日韩日本| 欧美激情一区在线| 99国产精品久久久久久久久久久| 91在线云播放| 欧美亚洲另类激情小说| 欧美一级日韩不卡播放免费| 欧美一区二区三区公司| 26uuu亚洲| 中文字幕一区在线观看| 一区2区3区在线看| 免费成人小视频| 丁香网亚洲国际| 欧美在线看片a免费观看| 欧美男人的天堂一二区| 亚洲精品一线二线三线| 国产精品每日更新在线播放网址 | 欧美视频一区二| 日韩视频免费观看高清完整版 | 成人毛片老司机大片| 色噜噜狠狠色综合欧洲selulu| 91麻豆精品国产91久久久 | 亚洲综合免费观看高清完整版| 日韩电影一区二区三区四区| 国产一区不卡精品| 欧美亚洲日本国产| 久久五月婷婷丁香社区| 一区二区不卡在线播放| 久久99国产乱子伦精品免费| 91在线一区二区三区| 日韩视频免费观看高清完整版在线观看| 久久久国产精品麻豆| 亚洲一区二区av在线| 国产乱人伦精品一区二区在线观看 | 一二三四社区欧美黄| 国产一区二区三区在线观看免费视频| 色天使久久综合网天天| 国产日本亚洲高清| 三级欧美韩日大片在线看| 成人av在线看| 久久综合网色—综合色88| 亚洲国产一区二区三区| 国产 欧美在线| 精品国产亚洲一区二区三区在线观看| 亚洲免费观看高清完整版在线| 精品亚洲成a人| 欧美色涩在线第一页| 亚洲人成小说网站色在线| 韩国女主播一区二区三区| 欧美日韩大陆在线| 国产精品久久久久久久久果冻传媒| 美女视频第一区二区三区免费观看网站| 色综合天天视频在线观看| 久久久久久久久97黄色工厂| 日韩中文字幕av电影| 日本韩国欧美在线| 国产精品国产馆在线真实露脸 | 男女男精品视频| 欧美视频完全免费看| 亚洲婷婷综合色高清在线| 国产精品91xxx| www亚洲一区| 久久成人免费网| 欧美成人精品二区三区99精品| 香蕉久久夜色精品国产使用方法| 色综合天天做天天爱| 中文字幕在线不卡| 99精品国产99久久久久久白柏| 国产精品网曝门| 99在线精品免费| 亚洲欧美日韩国产成人精品影院| 成人免费观看男女羞羞视频| 欧美激情一区在线观看| 国产91综合网|