在其他程式load user32.dll 問題 |
答題得分者是:kuf41
|
agerchen
一般會員 發表:8 回覆:6 積分:2 註冊:2006-12-08 發送簡訊給我 |
我參考了 Skyer 大大發表過的一篇文章
原文是 CreateRemoteThread 教學 XD delphi.ktop.com.tw/board.php 大部份都是參照自該大作,主要修改的是叫用的function ,Skyer 大大叫用的是 messagebox ,我想叫的是 postmessageA。 還有Skyer 大大是用 createremotethread 的方式去執行,我是直接修改 opcode 跳到我的程式,之後再跳回的方式。 (後面的方式也是參考自 Skyer 大大的 masm 源碼修改來的) 插入的程式碼如下 [code delphi] procedure packspy(callparam:PCallParam); stdcall; type LoadLibraryFunc = function(lib: PChar): DWORD; stdcall; GetProcAddressFunc = function(lib: DWORD; name: PChar): DWORD; stdcall; // MessageBoxFunc = function(handle: DWORD; msg, title: PChar; flag: DWORD): DWORD; stdcall; PostMessageFunc=function(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall; var pack_address: dword; mbuffer: array [0..59] of byte; headbyte: byte; FHandle: longword; p: pointer; myLoad: LoadLibraryFunc; myGetProc: GetProcAddressFunc; myPost: PostMessageFunc; hlib: DWORD; begin //先取ecx buffer asm pushad pushfd mov pack_address, ecx end; headbyte:=byte(pointer(pack_address)^); if (headbyte=$50) or (headbyte=$60) or (headbyte=$80) then begin myLoad := LoadLibraryFunc(callparam^.general_use1); myGetProc := GetProcAddressFunc(callparam^.general_use2); // hlib := myLoad(@callparam^.general_str[0]); <-- 這行一執行就出錯 // myPost:=PostMessageFunc(myGetProc(hlib, @callparam^.general_str2[0])); // mypost(hwnd(callparam^.general_use3),LINE_MSG,0,0); end; asm popfd popad sub eax,ecx lea edi,[esi $28] push eax push ecx mov eax,CONST_JMP_BACK jmp eax end; end; [/code] 出錯的是 myload(xxxxx); 這行,只要一執行,被插入程式就報 runtime library error,有大大知道這是怎麼回事嗎? |
agerchen
一般會員 發表:8 回覆:6 積分:2 註冊:2006-12-08 發送簡訊給我 |
|
agerchen
一般會員 發表:8 回覆:6 積分:2 註冊:2006-12-08 發送簡訊給我 |
|
kuf41
中階會員 發表:14 回覆:45 積分:51 註冊:2006-12-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |