|
|
|
|
|
[求助]WinID
请问这段代码 产生出的about dialog的class为什么是数字? 怎么来的? === .386 .model flat,stdcall option casemap:none include demo.inc .code start: invoke GetModuleHandle, NULL mov hInstance,eax invoke GetCommandLine invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT invoke ExitProcess,eax ;===================================================================== WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX LOCAL msg:MSG LOCAL hwnd:HWND mov wc.cbSize,SIZEOF WNDCLASSEX mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, OFFSET WndProc mov wc.cbClsExtra,NULL mov wc.cbWndExtra,NULL push hInst pop wc.hInstance mov wc.hbrBackground, COLOR_WINDOW+1 mov wc.lpszMenuName, OFFSET MenuName mov wc.lpszClassName, OFFSET ClassName invoke LoadIcon, NULL, IDI_APPLICATION mov wc.hIcon,eax mov wc.hIconSm,eax invoke LoadCursor, NULL, IDC_ARROW mov wc.hCursor,eax invoke RegisterClassEx, addr wc invoke CreateWindowEx, WS_EX_CLIENTEDGE, ADDR ClassName, ADDR AppName,\ WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, NULL, NULL,\ hInst, NULL mov hwnd,eax invoke ShowWindow, hwnd, SW_SHOWNORMAL invoke UpdateWindow, hwnd .while TRUE invoke GetMessage, ADDR msg, NULL, 0, 0 .break .if (!eax) invoke TranslateMessage, ADDR msg invoke DispatchMessage, ADDR msg .endw mov eax,msg.wParam ret WinMain endp ;======================================================================= WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM mov eax,uMsg .if eax == WM_DESTROY invoke PostQuitMessage,NULL .elseif eax == WM_COMMAND mov eax,wParam .if ax==IDM_ABOUT invoke DialogBoxParam, hInstance, addr DlgName, hWnd, OFFSET DlgProc, NULL .else invoke DestroyWindow, hWnd .endif .else invoke DefWindowProc,hWnd,uMsg,wParam,lParam ret .endif xor eax,eax ret WndProc endp DlgProc proc hWnd:HWND,iMsg:DWORD,wParam:WPARAM, lParam:LPARAM .if iMsg == WM_INITDIALOG invoke GetDlgItem, hWnd, IDC_EDIT invoke SetFocus, eax .elseif iMsg == WM_CLOSE invoke EndDialog, hWnd, NULL .elseif iMsg == WM_COMMAND mov eax,wParam mov edx,eax shr edx,16 .if dx == BN_CLICKED .if eax == IDC_EXIT invoke SendMessage, hWnd, WM_CLOSE, NULL, NULL .elseif eax == IDC_BUTTON invoke SetDlgItemText, hWnd, IDC_EDIT, ADDR TestString .endif .endif .else mov eax,FALSE ret .endif mov eax,TRUE ret DlgProc endp end start |
|
|
|
|
|
[讨论]ESP 和 EBP 的关系(以及对at&t和intel 的asm讨论)
从OllyDBG里贴过来的一段典型Stack frame建立过程: 1.Arguments被PUSH到栈里。 2.呼叫函式,将返回位址PUSH到栈里。 3.当函式开始执行时,EBP被PUSH到栈里。 4.EBP被设定成跟ESP一样的值。 5.接下来要看有多少个局部变数要放到栈里,就把ESP的位址减去某个数值,以挪出空间来存放。 push ebp mov ebp, esp add esp, -0B4 第三行的-0B4是负数? 也就是说OllyDBG会用负号表示负数 而不是用补数? |
|
[讨论]x64
那这样有办法用win32的OD逆向分析win64的程序吗? |
|
|
|
|
|
[求助]OllyCallTracec跑好久
有python script for IDA Pro可以用吗? |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值