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

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

?? u_main.pas

?? httpanalyzer, source code for delphi
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit u_main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, proxy1, proxy2,httpProxyExtend, ExtCtrls,
  ComCtrls, Menus, XPMan, xmldom, XMLIntf, msxmldom, XMLDoc;

type
  Tfrm_main = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    panel_tab1left: TPanel;
    panel_tab1right: TPanel;
    Splitter1: TSplitter;
    memo_p1_flow: TMemo;
    memo_p2_flow: TMemo;
    TabSheet4: TTabSheet;
    panel_tab2left: TPanel;
    Splitter2: TSplitter;
    panel_tab2right: TPanel;
    memo_p1_data_hex: TMemo;
    memo_p2_data_hex: TMemo;
    panel_tab3left: TPanel;
    Splitter3: TSplitter;
    panel_tab3right: TPanel;
    memo_p1_data_str: TMemo;
    memo_p2_data_str: TMemo;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Exit1: TMenuItem;
    Proxy1: TMenuItem;
    Start1: TMenuItem;
    Stop1: TMenuItem;
    About1: TMenuItem;
    Panel1: TPanel;
    StatusBar1: TStatusBar;
    panel_tab4left: TPanel;
    Splitter4: TSplitter;
    panel_tab4right: TPanel;
    memo_p1_header: TMemo;
    memo_p2_header: TMemo;
    SaveAs1: TMenuItem;
    N1: TMenuItem;
    SaveDialog1: TSaveDialog;
    Clearall1: TMenuItem;
    TabSheet5: TTabSheet;
    LogStart1: TMenuItem;
    LogStop1: TMenuItem;
    Timer1: TTimer;
    XPManifest1: TXPManifest;
    panel_tab5left: TPanel;
    ListView1: TListView;
    Splitter5: TSplitter;
    panel_tab5right: TPanel;
    PageControl2: TPageControl;
    TabSheet6: TTabSheet;
    TabSheet7: TTabSheet;
    memo_header_plain: TMemo;
    memo_xml: TMemo;
    SaveMarkedRequests1: TMenuItem;
    XMLDocument1: TXMLDocument;
    TabSheet8: TTabSheet;
    TreeView1: TTreeView;
    Panel2: TPanel;
    Button1: TButton;
    TabSheet9: TTabSheet;
    panel_tab6left: TPanel;
    Splitter6: TSplitter;
    panel_tab6right: TPanel;
    memo_content_p1: TMemo;
    memo_content_p2: TMemo;
    panel_tab9left_top: TPanel;
    panel_tab9right_top: TPanel;
    chk_hideEmptyEntries: TCheckBox;
    chk_logContent: TCheckBox;
    Label1: TLabel;
    PopupMenu1: TPopupMenu;
    Deleteselectedentries1: TMenuItem;
    SelectAll1: TMenuItem;


    procedure myProxyP1(Sender : TObject; msg : pchar);
    procedure myProxyP2(Sender : TObject; msg : pchar);

    function gotDataP1(Sender: TObject; run_nr : integer; p : pointer; VAR s:longint): pointer;
    function gotDataP2(Sender: TObject; run_nr : integer; p : pointer; VAR s:longint): pointer;

    function P1HeaderModified(Sender: TObject; run_nr : integer; p : pointer; VAR s:longint): pointer;
    function P2Header(Sender: TObject; run_nr : integer; p : pointer; VAR s:longint): pointer;

    function P1Content(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
    function P2Content(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;

    procedure clientDisconnects(Sender : TObject; Client : TProxyClient; Error  : Word);
    procedure clientConnects(Sender : TObject; Client : TProxyClient; Error  : Word);

    procedure Start1Click(Sender: TObject);
    procedure Stop1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure SaveAs1Click(Sender: TObject);
    procedure Clearall1Click(Sender: TObject);
    procedure LogStart1Click(Sender: TObject);
    procedure LogStop1Click(Sender: TObject);
   
    procedure Timer1Timer(Sender: TObject);
  
    procedure ListView1InfoTip(Sender: TObject; Item: TListItem;
      var InfoTip: String);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure SaveMarkedRequests1Click(Sender: TObject);
    procedure memo_xmlChange(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Deleteselectedentries1Click(Sender: TObject);
    procedure SelectAll1Click(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frm_main: Tfrm_main;

var
  myproxy : TProxyServer;

implementation
uses mem_utils, saving, httphelp, u_about,XmlTree;

var
 logging : boolean = true;
 

{$R *.dfm}

//Methoden zum Auslesen der HTTP-Header


function getHeaderAttribut(header,searchStr:string) : string;
var A : TstrArray; i: integer;
begin;
 result:='';
 A:= Split(header,chr(10)) ;
 for i:=0 to length(A)-1 do begin;
    //frm_main.memo_header_plain.lines.add(A[i]);
    if (pos(searchStr,A[i])=1) then begin;
       result:= Copy(A[i], pos(searchStr,A[i])+length(searchStr),length(A[i])-length(searchStr)-1 );
       exit;
     end;
 end;

end;




function getHost(str : String) : string;
begin;
 result:= getHeaderAttribut(str,'Host: ');
end;

function getReferer(str : String) : string;
begin;
 result:= getHeaderAttribut(str,'Referer: ');
end;

function getMethod(str : String) : string; // GET oder POST
begin;
  result:=paramX(str,0,' ');
end;

function getURL(str : String) : string;
begin;
 result:=paramX(str,1,' ');
end;

function getContentType(str : String) : string;
begin;
 result:= getHeaderAttribut(str,'Content-Type: ');
end;

//HTTP/1.1 304 Not Modified
function getStatus(str : String) : string;
begin;
  result:=paramX(str,1,' ');
end;

//HttpProxyEvents
function Tfrm_main.P1HeaderModified(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
var header : string; za1 : integer;
    item : TListItem;
begin;
if logging then begin;
if Assigned(memo_p1_header) then begin;
  if assigned(sender) then begin;
    header:=mem2str(p,s);
    //suche das TListItem mit der run_nr=caption;
    for za1:=0 to listview1.Items.Count-1 do begin
      item:=listview1.Items.Item[za1];
      if (item.Caption=inttostr(run_nr)) then begin;
        item.SubItems[0]:=getHost(header);    //Host=0
        item.SubItems[1]:=getMethod(header);  //Method=1
        item.SubItems[2]:=getUrl(header);     //URL=2
        item.SubItems[3]:=getReferer(header); //Referer=3

        item.SubItems[6]:=mem2str(p,s);       //Header Request=6
      end;
    end;
    memo_p1_header.Lines.add('['+inttostr(run_nr)+'] '+mem2pchar(p,s));
  end; //assigned(sender)
 end;  //assigned(memo)
end; //logging
 result:=p;  //erlaubt prinzipiell die ver鋘derung aller Daten;
end;

function Tfrm_main.P2Header(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
var header : string;
    za1 : integer;
    item : TListitem;
begin;
if logging then begin;
if Assigned(memo_p2_header) then begin;
  if assigned(sender) then begin;
    header:=mem2str(p,s);

    memo_p2_header.Lines.add('['+inttostr(run_nr)+'] '+mem2pchar(p,s));
    //suche das TListItem mit der run_nr=caption;
    for za1:=0 to listview1.Items.Count-1 do begin
     item:=listview1.Items.Item[za1];
     if (item.Caption=inttostr(run_nr)) then begin;
       item.SubItems[4]:= getStatus(header);
       item.SubItems[5]:= getContentType(header);
       item.SubItems[7]:=mem2str(p,s);
     end;
    end;

  end; //assigned sender
 end; //assigned memo
end; //logging
 result:=p;  //膎derungen der P2-Header-Daten werden verworfen!!
end;


function Tfrm_main.P1Content(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
var
    za1 : integer;
    item : TListitem;
begin;
if logging then begin;
if Assigned(memo_content_p1) then begin;
  if assigned(sender) then begin;
    if (chk_hideEmptyEntries.Checked) and (s=0) then begin
    end else memo_content_p1.Lines.add('['+inttostr(run_nr)+'] '+mem_show(p,s));
    //

    for za1:=0 to listview1.Items.Count-1 do begin
     item:=listview1.Items.Item[za1];
     if (item.Caption=inttostr(run_nr)) then begin;
       item.SubItems[9]:=item.Subitems[9]+mem2str(p,s);
     end;
    end;
    //
  end;
 end;
end;
 result:=p;  //erlaubt prinzipiell die ver鋘derung aller Daten;
end;

function Tfrm_main.P2Content(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
begin;
if logging then begin;
if Assigned(memo_content_p2) then begin;
  if assigned(sender) then begin;
  if (chk_logContent.Checked) then 
  memo_content_p2.Lines.add('['+inttostr(run_nr)+'] '+mem_show(p,s));
  end;
 end;
end;
 result:=p;  //erlaubt prinzipiell die ver鋘derung aller Daten;
end;


function Tfrm_main.gotDataP1(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
begin;
if logging then begin;
if Assigned(memo_p1_data_hex) then begin;
  if assigned(sender) then begin;
  memo_p1_data_hex.Lines.add('['+inttostr(run_nr)+'] '+mem_show(p,s));
  memo_p1_data_str.Lines.add('['+inttostr(run_nr)+'] '+mem2pchar(p,s));
  end;
 end;
end;
 result:=p;  //erlaubt prinzipiell die ver鋘derung aller Daten;
end;

function Tfrm_main.gotDataP2(Sender: TObject; run_nr : integer;p : pointer; VAR s:longint): pointer;
begin;
if logging then begin;
if Assigned(memo_p2_data_hex) then begin;
  if assigned(sender) then begin;
  memo_p2_data_hex.Lines.add('['+inttostr(run_nr)+'] '+mem_show(p,s));
  memo_p2_data_str.Lines.add('['+inttostr(run_nr)+'] '+mem2pchar(p,s));
  end;
 end;
end;
 result:=p;  //erlaubt prinzipiell die ver鋘derung aller Daten
end;



procedure Tfrm_main.myProxyP1( Sender : TObject; msg : pchar);
var bufobj : THttpProxy;
begin;
if not logging then exit;
 if Assigned(memo_p1_flow) then begin;
  if assigned(sender) then begin;
   bufobj:=THttpProxy(Sender);
   memo_p1_flow.lines.add('['+inttostr(bufobj.run_nr)+'] '+msg);
  end;
 end;
end;

procedure Tfrm_main.myProxyP2( Sender : TObject; msg : pchar);
var bufobj : THttpProxy;
begin;
if not logging then exit;
 if Assigned(memo_p2_flow) then begin;
  if assigned(sender) then begin;
   bufobj:=THttpProxy(Sender);
   memo_p2_flow.lines.add('['+inttostr(bufobj.run_nr)+'] '+msg);
  end;
 end;
end;


{function createXML(item : TListItem) : string;
var xml : string;
    const lf : string = chr(13)+chr(10);
begin;
 xml:=
 '<action id="'+item.Caption+'">'+lf+
 '  <description></description>'+lf+
 '  <method>'+item.SubItems[1]+'</method>'+lf+
 '  <host>'+item.SubItems[0]+'</host>'+lf+
 '  <documentpath>'+item.SubItems[2]+'</documentpath>'+lf+
 '  <reference>'+item.SubItems[3]+'</reference>'+lf;
 if (item.SubItems[1]='POST') then begin;
    xml:=xml+'  <postvalues>'+lf+'Not yet done'+
            '  </postvalues>'+lf;
 end;

(* xml:=xml+
 '  <contentTransmitted>'+lf+
 '    <requestHeader>'+lf+item.SubItems[6]+
 '    </requestHeader>'+lf+
 '    <requestContent>'+lf+'Not yet done'+
 '    </requestContent>'+lf+
 '    <responseHeader>'+lf+item.SubItems[7]+
 '    </responseHeader>'+lf+
 '  </contentTransmitted>'+lf+
 *)

 xml:=xml+'</action>'+lf;

 result:=xml;
end;
}
function createXML(item : TListItem) : string;
var XMLDoc2 : IXMLDocument; // siehe http://community.borland.com/article/0,1410,29241,00.html
    Root,ValueNode, paramRoot, logRoot: IXMLNode;
    xmlstr : string;

    //i : integer;
    //const lf : string = chr(13)+chr(10);

//Extrahieren der POST Name=Value Pairs
   poststr: string;
   var A : TstrArray; i: integer;
   var bothstr, namestr, valuestr : string;
begin
  XMLDoc2 := TXMLDocument.Create(nil);
  //XMLDoc2.LoadFromXml('<test>Hallo Welt<reference></test>');

  XMLDoc2.Active:=true;
  root:=XMLDoc2.AddChild('action');
  root.Attributes['id']:=item.Caption;
  root.Attributes['description']:='none';

  //ValueNode:=root.AddChild('description');

  ValueNode:=root.AddChild('method');
  ValueNode.Text:=item.SubItems[1];

  ValueNode:=root.AddChild('host');
  ValueNode.Text:=item.SubItems[0];

  ValueNode:=root.AddChild('documentpath');
  ValueNode.Text:=item.SubItems[2];

  ValueNode:=root.AddChild('referer');
  ValueNode.Text:=item.SubItems[3];

  poststr:=item.subitems[9];
  if (item.SubItems[1]='POST') then begin;
    (*
    ValueNode:=root.AddChild('poststring');
    //ValueNode.Attributes['type']='encoded'; //TODO: real encoding aus Header auslesen
    ValueNode.Text:=poststr;
    *)

    paramRoot:=root.AddChild('postcontent');
    //paramRoot.Attributes['type']='plain text';

    A:= Split(poststr,'&') ;
    for i:=0 to length(A)-1 do begin;
      bothstr:=A[i];
      namestr:=paramX(bothstr,0,'=');
      valuestr:=paramX(bothstr,1,'=');

      ValueNode:=paramRoot.AddChild('param');
      ValueNode.Attributes['name']:=UrlDecode(namestr);
      ValueNode.Attributes['value']:=UrlDecode(valuestr);
    end;
   end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜精品网| 国产资源在线一区| 色综合久久久网| 亚洲电影中文字幕在线观看| 中文字幕一区二区在线观看| 久久午夜色播影院免费高清| 天堂在线亚洲视频| 日韩欧美色电影| 成人av在线一区二区| 亚洲一区在线看| 精品国产一二三| 欧美在线高清视频| 久久 天天综合| 亚洲一区二三区| 久久久不卡网国产精品二区| 欧美性大战xxxxx久久久| 精品一区二区三区免费| 亚洲综合一区在线| 中文字幕中文乱码欧美一区二区| 欧美日韩你懂得| 91女人视频在线观看| 激情久久五月天| 日韩精品高清不卡| 亚洲免费在线视频一区 二区| 久久亚洲精精品中文字幕早川悠里| 91丨porny丨国产入口| 免费欧美高清视频| 亚洲国产日韩一级| 成人免费小视频| 国产精品萝li| 国产精品高潮呻吟| 中文字幕一区不卡| 中文字幕一区二区三区四区| 久久久亚洲国产美女国产盗摄 | 一区二区三区免费| 国产精品久久久久久久久晋中| wwwwxxxxx欧美| 国产精品国产精品国产专区不片| 国产午夜精品一区二区三区视频| 2024国产精品| 日本一区二区三区在线不卡| 国产精品久久久久影院色老大| 久久久久久一二三区| 国产精品日韩成人| 亚洲激情一二三区| 麻豆91在线播放免费| 久久99久久99| 色偷偷久久一区二区三区| 欧美午夜片在线看| 91精品婷婷国产综合久久竹菊| 日韩免费一区二区三区在线播放| 国产欧美日韩精品一区| 一区二区三区不卡视频| 九九精品视频在线看| 成人激情免费视频| 欧美一级在线视频| 久久久99精品久久| 视频一区欧美精品| 色av成人天堂桃色av| 欧美第一区第二区| 亚洲bdsm女犯bdsm网站| 国产a区久久久| 欧美成人猛片aaaaaaa| 亚洲人成伊人成综合网小说| 国内成+人亚洲+欧美+综合在线| 91小视频在线免费看| 精品精品国产高清a毛片牛牛| 亚洲制服丝袜一区| 91女神在线视频| 综合久久综合久久| 99视频一区二区| 久久久www免费人成精品| 麻豆国产欧美一区二区三区| 4438x成人网最大色成网站| 亚洲乱码中文字幕| 欧美探花视频资源| 婷婷开心激情综合| 欧美一区二区三区播放老司机| 亚洲一本大道在线| 欧美一区二区三区公司| 久久精品国产第一区二区三区| 欧美一区二区三区视频在线| 精品一区二区久久久| 国产色婷婷亚洲99精品小说| 成人av电影在线观看| 一区二区三区在线观看网站| 91精品中文字幕一区二区三区| 久久超碰97人人做人人爱| 久久品道一品道久久精品| 成人精品小蝌蚪| 日韩精品免费视频人成| 国产婷婷一区二区| 欧美喷潮久久久xxxxx| 国产一区二区三区免费观看| 国产精品成人免费在线| 欧美一二三四区在线| 成人福利视频网站| 亚洲大片精品永久免费| 久久久国产午夜精品| 欧美日韩国产中文| 成人va在线观看| 麻豆精品一区二区综合av| 亚洲欧洲性图库| 日韩三级免费观看| 欧美在线不卡一区| 成人三级伦理片| 国产精品123区| 国产精品中文欧美| 国产一区二区三区免费| 捆绑调教一区二区三区| 亚洲国产成人va在线观看天堂 | 国产精品久久网站| 久久精品人人做人人综合| 日韩三级伦理片妻子的秘密按摩| 色又黄又爽网站www久久| 成人av电影免费观看| 看国产成人h片视频| 欧美一区三区二区| 欧美日本韩国一区二区三区视频| 久久精品一区二区三区不卡| 精品国产髙清在线看国产毛片 | 欧美日韩aaa| 日韩激情中文字幕| 色综合久久综合网欧美综合网| 久久综合九色综合久久久精品综合 | 久久久久国产精品厨房| 日本成人中文字幕| 8x福利精品第一导航| 午夜久久久久久久久久一区二区| 91在线视频免费观看| 日韩毛片视频在线看| 91在线观看免费视频| 自拍偷拍亚洲激情| 色婷婷综合久久久久中文一区二区| 国产精品天天看| 91久久人澡人人添人人爽欧美| 国产精品久久久久久久久快鸭| 99综合电影在线视频| 亚洲久本草在线中文字幕| 在线观看亚洲一区| 黄色日韩三级电影| 中文字幕一区二区三区色视频| 91影院在线观看| 日韩精品欧美精品| 国产日韩欧美一区二区三区综合| 国产成人午夜99999| 亚洲欧美一区二区三区极速播放| 91亚洲大成网污www| 麻豆91在线播放| 亚洲柠檬福利资源导航| 欧美va日韩va| 欧美色图片你懂的| 国产不卡视频一区二区三区| 亚洲乱码国产乱码精品精小说| 日韩女优视频免费观看| 一本久久精品一区二区| 国产一区二区三区精品欧美日韩一区二区三区 | 高清不卡在线观看| 免费xxxx性欧美18vr| 亚洲欧美日韩电影| 久久伊人蜜桃av一区二区| 欧美三级欧美一级| av一本久道久久综合久久鬼色| 麻豆成人久久精品二区三区红 | 成人av免费网站| 国产一区中文字幕| 美女看a上一区| 日本美女一区二区三区| 亚洲国产日韩在线一区模特| 亚洲天堂免费在线观看视频| 国产欧美日韩卡一| 欧美国产综合一区二区| 欧美精品一区二区蜜臀亚洲| 欧美一级日韩不卡播放免费| 欧美日韩在线电影| 欧美亚洲自拍偷拍| 欧美日韩综合一区| 日本高清不卡一区| 在线国产电影不卡| 在线播放国产精品二区一二区四区 | 色综合欧美在线视频区| 99精品久久只有精品| 欧美系列日韩一区| 欧美一二三四区在线| 久久精品网站免费观看| 中文字幕综合网| 亚洲综合清纯丝袜自拍| 日韩国产精品大片| 国产一区二区电影| 欧美性高清videossexo| 欧美日韩国产综合视频在线观看| 欧美一区二区三区四区视频| 久久奇米777| 一区二区三区中文字幕| 青青草伊人久久| 99国产精品久久久久久久久久久| 欧美日韩在线播放一区| 久久久精品国产99久久精品芒果 | 欧美日韩精品一区二区天天拍小说| 欧美精品乱码久久久久久|