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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? debugger.pas

?? 冒險(xiǎn)島吸怪源碼UCE的制作材料 用于冒險(xiǎn)島游戲的外掛
?? PAS
字號(hào):
unit debugger;

interface

uses Classes,windows,sysutils,Messages,forms,dialogs,controls,Graphics,newkernelhandler;


type TDebugger = class(TThread)
  private
    originalbyte: byte;
    debugging: boolean;

    threadlist: array of array [0..4] of dword;
    procedure SetSingleStepping(threadid:dword);
    procedure UpdateList;
    procedure line;
    procedure itsdone;
    procedure showphase;
  public
    procedure Execute; override;
  end;


type tcallnumber=record
  callnumber:dword;
  parametercount: byte;
end;

var ok:boolean;
    context:_context;
    debuggerdone: boolean;
    debuggedprocesshandle: thandle;

    callnumbers: array [0..3] of array of tcallnumber;

implementation

uses mainunit;

procedure tdebugger.showphase;
begin
  form1.listbox1.Lines.Add('Phase '+inttostr(phase+1)+'/4 (please wait....)');
end;

procedure tdebugger.itsdone;
begin
  form1.ListBox1.Lines.Add('-----done----');

  debugging:=false;
  terminateprocess(debuggedprocesshandle,0);
  
  form1.Timer1.Enabled:=false;
  postmessage(sharedmem^.RetrieverWindowHandle,wm_user+1,0,0);
end;

procedure tdebugger.line;
begin
  form1.ListBox1.Lines.Add('-------------');
end;

procedure TDebugger.UpdateList;
var i:integer;
    ar: dword;
    buf: byte;
    found:boolean;
begin
  if (context.Eax and $1000)=0 then exit; //not one i need

  buf:=0;
  if (paramlist<>0) then
    readprocessmemory(processhandle,pointer(paramlist+(context.Eax and $FFF)),@buf,1,ar);

  found:=false;
  for i:=0 to length(callnumbers[phase])-1 do
    if callnumbers[phase][i].callnumber=(context.eax and $FFF) then
    begin
      found:=true;
      break;
    end;

  if not found then
  begin
    setlength(callnumbers[phase],length(callnumbers[phase])+1);
    callnumbers[phase][length(callnumbers[phase])-1].callnumber:=context.Eax and $FFF;
    callnumbers[phase][length(callnumbers[phase])-1].parametercount:=buf;
  end;

  form1.ListBox1.Lines.Add(IntToHex(context.Eip,8)+' - '+IntToHex(context.Eax and $FFF,4)+' - '+IntToHex(buf,2));
end;

procedure TDebugger.SetSingleStepping(Threadid: dword);
var i: integer;
    context: _context;
begin
  for i:=0 to length(threadlist)-1 do
    if threadlist[i,0]=ThreadId then
    begin
      context.ContextFlags:=CONTEXT_FULL;
      getthreadcontext(threadlist[i,1],context);

      context.ContextFlags:=CONTEXT_FULL; //CONTEXT_CONTROL;
      context.EFlags:=context.EFlags or $100;
      setthreadcontext(threadlist[i,1],context);
      break;
    end;
end;

procedure TDebugger.Execute;
var startupinfo:_STARTUPINFOA;
    int3: byte;
    devent: _Debug_EVENT;
    processinfo:_Process_information;       //make an array of this


    KiFastSystemCallPos: dword;
    ntdll:thandle;

    bpset: boolean;
    x,op:dword;
    currentthread:dword;
    i:integer;
    processhandle:thandle;
    buf:array [0..4] of byte;
    ar:dword;
    hasrun:boolean;

begin
  hasrun:=false;
  debuggerdone:=false;

  bpset:=false;

  FillMemory(@STARTUPINFO,sizeof(STARTUPINFO),0);
  STARTUPINFO.cb :=sizeof(STARTUPINFO);

  synchronize(showphase);

  if (not Createprocess(nil,pchar('systemcallsignal.exe '+IntToStr(phase+1)),nil,nil,false,(DEBUG_PROCESS or NORMAL_PRIORITY_CLASS),nil,nil,Startupinfo,processinfo)) then
  begin
    messagebox(0,'Systemcaller couldn''t be executed','Systemcallretriever error',mb_ok);
    exit;
  end;

  processhandle:=processinfo.hProcess;
  debuggedprocesshandle:=processinfo.hProcess;

  setlength(threadlist,1);
  threadlist[0,0]:=processinfo.dwThreadId;
  threadlist[0,1]:=processinfo.hThread;



  debugging:=true;


  while not terminated and debugging do
  begin
    if WaitForDebugEvent(devent,4000) then  //4 seconds wont cause a hog I hope
    begin
      case devent.dwDebugEventCode of
        EXCEPTION_DEBUG_EVENT:
        begin
          for i:=0 to length(threadlist)-1 do
            if threadlist[i,0]=devent.dwThreadId then
            begin
              context.ContextFlags:=CONTEXT_FULL;
              getthreadcontext(threadlist[i,1],context);
              currentthread:=i;
            end;

          if (sharedmem^.Infunction) then SetSinglestepping(devent.dwThreadId);
          
          if devent.Exception.ExceptionRecord.ExceptionCode=exception_breakpoint then
          begin

            debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_CONTINUE);
            continue;
          end;

          if devent.Exception.ExceptionRecord.ExceptionCode=exception_single_step then
          begin
            if (sharedmem^.Infunction) then
            begin
              hasrun:=true;
              if (readprocessmemory(processhandle,pointeR(context.eip),@buf[0],4,ar)) and
                 (
                  ((buf[0]=$CD) and (buf[1]=$2e))
                 or
                  ((buf[0]=$0f) and (buf[1]=$34))
                  ) then synchronize(updatelist);
            end else if hasrun then synchronize(itsdone);

            debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_CONTINUE);
            continue;
          end;

          if (devent.Exception.ExceptionRecord.ExceptionCode=STATUS_ACCESS_VIOLATION) then
          begin
            debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_CONTINUE);
            continue;
          end;


        //  messagebox(0,pchar('unhandled exception '+IntToHex(devent.Exception.ExceptionRecord.ExceptionCode,8)),'unhandled exception',mb_ok);
          debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_EXCEPTION_NOT_HANDLED);
          continue;

        end;

        CREATE_THREAD_DEBUG_EVENT:
        begin
          messagebox(0,'thread','thread',mb_ok);
          setlength(threadlist,length(threadlist)+1);
          threadlist[length(threadlist)-1,0]:=devent.dwThreadId;
          threadlist[length(threadlist)-1,1]:=devent.CreateThread.hThread;

          threadlist[length(threadlist)-1,2]:=dword(devent.CreateThread.lpStartAddress);
          threadlist[length(threadlist)-1,3]:=dword(devent.CreateThread.lpThreadLocalBase);
          SetSinglestepping(devent.dwThreadId);

          debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_CONTINUE);
        end;

        OUTPUT_DEBUG_STRING_EVENT:
        begin
          if devent.DebugString.fUnicode=0 then
          begin
            //8 bit ascii
            synchronize(line);
          end;

          debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_CONTINUE);
        end;

        else debugging:=ContinueDebugEvent(devent.dwProcessId,devent.dwThreadId,DBG_CONTINUE);
      end;
    end;
  end;

  debuggerdone:=true;
  freeonterminate:=true;
  sharedmem^.Infunction:=false;

end;


end.

 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合在线观看| 精品国内二区三区| 91成人免费在线视频| 99视频在线精品| 色综合天天天天做夜夜夜夜做| 成人精品免费视频| 99久久综合国产精品| 91在线小视频| 在线观看国产精品网站| 欧美性色综合网| 欧美人xxxx| 精品少妇一区二区三区视频免付费 | 欧美日韩国产影片| 3atv在线一区二区三区| 欧美大片国产精品| 国产视频一区二区在线观看| 国产精品久久三| 亚洲精品久久7777| 日本大胆欧美人术艺术动态| 国内精品在线播放| av不卡免费电影| 欧美午夜精品电影| 欧美成人精品3d动漫h| 久久久久久久久久久电影| 国产精品麻豆99久久久久久| 亚洲精品v日韩精品| 天堂成人免费av电影一区| 黑人精品欧美一区二区蜜桃| 不卡区在线中文字幕| 欧美日韩一卡二卡| 精品国免费一区二区三区| 国产精品久久毛片| 亚洲国产精品人人做人人爽| 久久精品免费看| 成人精品视频网站| 7878成人国产在线观看| 久久丝袜美腿综合| 亚洲美女区一区| 日韩二区三区四区| 成人动漫一区二区三区| 欧美情侣在线播放| 国产欧美日韩在线看| 亚洲综合网站在线观看| 韩国av一区二区三区四区 | 中文字幕中文字幕中文字幕亚洲无线| 一区二区三区在线播| 蜜臀av性久久久久av蜜臀妖精| 懂色av中文字幕一区二区三区 | 国产欧美日韩在线| 亚洲成a人片在线不卡一二三区| 国内成人自拍视频| 欧美亚男人的天堂| 久久久精品蜜桃| 视频一区欧美精品| 99久久综合色| 久久影院电视剧免费观看| 亚洲在线视频免费观看| 国产精品一区二区三区四区| 欧美日韩国产成人在线91| 国产日韩欧美激情| 麻豆精品国产91久久久久久| 色香色香欲天天天影视综合网| www激情久久| 午夜久久久久久久久| 99久久婷婷国产精品综合| 欧美成人精品福利| 婷婷国产在线综合| 91看片淫黄大片一级| 国产亚洲欧美色| 蜜臀av性久久久久蜜臀aⅴ| 色婷婷久久一区二区三区麻豆| 国产午夜精品一区二区三区视频| 三级欧美在线一区| 在线观看亚洲a| 亚洲欧美一区二区在线观看| 激情综合网最新| 欧美精品亚洲一区二区在线播放| 亚洲激情第一区| 成人免费的视频| 国产亚洲一区二区在线观看| 男人的j进女人的j一区| 欧美乱妇15p| 亚洲一级二级在线| 在线视频欧美精品| 亚洲人被黑人高潮完整版| 成人av网站免费观看| 美女视频网站黄色亚洲| 欧美亚洲综合久久| 亚洲精品成人天堂一二三| 不卡免费追剧大全电视剧网站| 久久精品夜色噜噜亚洲aⅴ| 精品一区二区三区不卡| 精品欧美乱码久久久久久| 男人操女人的视频在线观看欧美| 在线不卡免费av| 人人狠狠综合久久亚洲| 91精品国产综合久久精品app| 亚洲人成网站在线| 日本精品视频一区二区| 亚洲精品久久7777| 在线免费不卡视频| 一区二区高清在线| 欧美三区在线观看| 午夜精品久久久久久久久久| 欧美日韩国产中文| 日韩国产欧美三级| 日韩欧美一区二区免费| 精品一区二区三区在线视频| 欧美精品一区二| 粉嫩av一区二区三区在线播放| 国产精品欧美经典| 色综合av在线| 亚洲国产精品一区二区www在线 | 国产视频一区在线播放| 成人av网在线| 亚洲激情男女视频| 欧美久久一二区| 欧美羞羞免费网站| 日韩精品欧美精品| 精品国产3级a| 成人福利视频在线看| 亚洲人成电影网站色mp4| 在线亚洲一区观看| 日韩成人免费看| 久久午夜电影网| 99re这里只有精品首页| 亚洲一区在线观看免费观看电影高清 | 欧美日本在线视频| 精品综合免费视频观看| 国产日韩av一区| 91久久久免费一区二区| 秋霞午夜av一区二区三区| 亚洲精品一区二区三区四区高清| 成人免费av网站| 亚洲国产精品久久久久秋霞影院| 欧美一级黄色录像| 成人免费福利片| 日精品一区二区三区| 久久久久久电影| 欧美性受极品xxxx喷水| 久久se精品一区二区| 国产精品色在线| 欧美久久久久久蜜桃| 国产福利一区二区三区视频 | 另类小说一区二区三区| 国产精品久久久久7777按摩| 欧美视频在线观看一区二区| 久久99久久久久久久久久久| 中文字幕亚洲精品在线观看| 制服丝袜日韩国产| 成人av网站在线| 美腿丝袜亚洲色图| 亚洲精品欧美二区三区中文字幕| 日韩一区二区三区视频在线观看| av一本久道久久综合久久鬼色| 日韩福利电影在线观看| 中文字幕在线一区二区三区| 日韩亚洲欧美中文三级| 色婷婷综合久久久中文一区二区| 另类小说图片综合网| 一区二区三区中文在线观看| 国产亚洲欧洲997久久综合 | 国产亚洲精品资源在线26u| 在线观看国产精品网站| 国产不卡视频在线播放| 天天亚洲美女在线视频| 亚洲色欲色欲www在线观看| 日韩女优电影在线观看| 日本精品视频一区二区| 岛国精品一区二区| 久久精品国产精品亚洲红杏| 一级精品视频在线观看宜春院 | 国内久久婷婷综合| 日精品一区二区| 亚洲综合清纯丝袜自拍| 中文成人av在线| 久久精品免视看| 精品久久久久久综合日本欧美| 欧美日韩黄色一区二区| 91福利精品视频| 99这里只有精品| 成人a免费在线看| 国产乱码精品一区二区三区五月婷| 日韩在线卡一卡二| 亚洲自拍偷拍图区| 亚洲日本在线观看| 国产精品视频观看| 国产欧美一区二区在线| 精品久久免费看| 日韩欧美二区三区| 欧美一级电影网站| 欧美日韩久久一区| 欧美视频日韩视频在线观看| 色综合天天综合网国产成人综合天| 成人永久免费视频| 岛国一区二区三区| 成人a级免费电影| 成人美女在线视频| jlzzjlzz欧美大全| av在线不卡观看免费观看|