亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
开心九九激情九九欧美日韩精美视频电影| 黑人巨大精品欧美一区| 经典三级在线一区| 在线观看日韩精品| 国产日韩三级在线| 日韩激情视频网站| 色婷婷久久99综合精品jk白丝| 欧美mv和日韩mv的网站| 亚洲精品乱码久久久久久黑人 | 久久久久国色av免费看影院| 亚洲色图在线视频| 精品无人区卡一卡二卡三乱码免费卡| 色婷婷亚洲精品| 中文字幕在线观看不卡| 国产乱码精品一品二品| 欧美一区二区免费观在线| 亚洲午夜免费视频| 色呦呦国产精品| 亚洲欧美激情小说另类| 粉嫩av一区二区三区粉嫩| 欧美成人欧美edvon| 日韩二区三区在线观看| 日本丶国产丶欧美色综合| 欧美经典一区二区三区| 国产精品一区二区不卡| 精品国产伦一区二区三区观看体验 | 亚洲欧美视频一区| www.欧美亚洲| 中文字幕制服丝袜一区二区三区| 国产成人精品影视| 欧美国产一区二区| 国产91露脸合集magnet | 91精品免费在线| 天堂av在线一区| 欧美一区二区视频在线观看2022 | 7777精品伊人久久久大香线蕉完整版 | 日韩三级中文字幕| 裸体一区二区三区| 久久久精品日韩欧美| 国产成人综合网| 中文字幕视频一区二区三区久| 成人精品小蝌蚪| 亚洲欧洲中文日韩久久av乱码| av一区二区三区| 亚洲一区二区在线观看视频| 欧美日韩一级二级| 青娱乐精品在线视频| 久久噜噜亚洲综合| 91麻豆高清视频| 午夜久久久久久久久久一区二区| 777久久久精品| 国产一区二区剧情av在线| 国产精品久久久爽爽爽麻豆色哟哟 | 国产精品自拍在线| 中文字幕在线不卡一区二区三区| 欧美丝袜丝交足nylons图片| 天堂精品中文字幕在线| 久久免费电影网| 91女神在线视频| 亚洲va韩国va欧美va| 欧美精品一区二区精品网| 99久久精品一区| 免费日本视频一区| 亚洲欧美日韩国产手机在线| 7777精品久久久大香线蕉| 国产美女视频一区| 亚洲成a人v欧美综合天堂下载| 精品99一区二区| 91国偷自产一区二区三区观看| 蜜桃视频在线观看一区| 亚洲视频一区二区免费在线观看| 欧美日韩国产一二三| 福利电影一区二区三区| 午夜一区二区三区视频| 中文字幕欧美日本乱码一线二线| 欧美日韩在线播放三区| 成人精品一区二区三区四区| 日韩影视精彩在线| 亚洲色图清纯唯美| 久久婷婷国产综合精品青草 | 色诱亚洲精品久久久久久| 老司机精品视频一区二区三区| 国产精品久久久久9999吃药| 日韩美女视频在线| 欧美情侣在线播放| 99re热这里只有精品视频| 精品一区免费av| 五月激情六月综合| 亚洲制服欧美中文字幕中文字幕| 国产女人aaa级久久久级 | 国产在线观看一区二区| 亚洲一区在线免费观看| 中文字幕欧美一| 欧美国产精品专区| 精品国产乱码久久久久久闺蜜| 欧美视频日韩视频| 色综合久久综合| av一区二区不卡| 风间由美性色一区二区三区| 久久99精品国产麻豆婷婷| 日韩不卡在线观看日韩不卡视频| 一区二区三区在线观看国产| 亚洲国产精华液网站w| 久久久精品tv| 久久久亚洲精品石原莉奈| 日韩欧美久久久| 欧美一区二区三区在线电影| 欧美性大战xxxxx久久久| 91老师国产黑色丝袜在线| 91猫先生在线| 91麻豆swag| 精品视频免费在线| 欧美综合亚洲图片综合区| 欧美午夜不卡视频| 欧美日韩中文字幕一区二区| 欧美日韩视频在线一区二区| 欧美视频在线播放| 在线不卡一区二区| 欧美一激情一区二区三区| 日韩一区二区三区视频在线 | 亚洲综合在线电影| 亚洲美女视频一区| 亚洲午夜影视影院在线观看| 亚洲国产精品嫩草影院| 日日夜夜免费精品视频| 免费在线成人网| 国产一区二区三区美女| 国产精品一区二区在线播放| 成人丝袜高跟foot| 色综合一区二区| 欧美久久久久久久久中文字幕| 欧美一级欧美三级在线观看| 日韩免费成人网| 国产日韩欧美一区二区三区综合 | 色综合久久六月婷婷中文字幕| 日本高清视频一区二区| 制服丝袜中文字幕亚洲| 欧美tickling挠脚心丨vk| 欧美国产精品v| 亚洲福利视频导航| 激情五月播播久久久精品| 成人黄色av电影| 欧美日韩精品福利| 久久精品一二三| 一区二区三区欧美| 久久国产精品无码网站| 成人黄色一级视频| 欧美一级二级三级乱码| 国产精品视频麻豆| 免费观看久久久4p| 99久久国产综合色|国产精品| 欧美日韩国产大片| 欧美激情中文字幕一区二区| 亚洲国产综合色| 国产高清成人在线| 欧美日韩一二三| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品一级在线| 7777精品伊人久久久大香线蕉经典版下载| 制服.丝袜.亚洲.中文.综合| 亚洲制服丝袜av| 欧美在线免费播放| 精品精品欲导航| 亚洲综合一区在线| 国产精品一区二区在线播放| 91高清视频在线| 欧美成人免费网站| 亚洲一区在线观看免费观看电影高清| 经典三级视频一区| 精品视频在线视频| 国产精品短视频| 日韩精品一二三四| 欧美在线观看一区| 欧美激情一区二区| 激情伊人五月天久久综合| 欧美性生活一区| 日韩美女视频一区二区 | 91免费在线看| 中文字幕精品三区| 韩国午夜理伦三级不卡影院| 欧美日韩高清一区二区| 国产精品萝li| 粉嫩aⅴ一区二区三区四区五区 | 欧美日韩中文另类| 一区二区三区中文字幕电影| 成人激情小说网站| 国产精品系列在线| 成人午夜视频福利| 中文字幕精品三区| 成人午夜免费视频| 欧美激情综合五月色丁香小说| 九色综合国产一区二区三区| 欧美人动与zoxxxx乱| 亚洲宅男天堂在线观看无病毒 | 成人性生交大片免费| 2020国产成人综合网| 韩国v欧美v亚洲v日本v| 精品成人一区二区三区| 国产精品一区二区视频| 国产亚洲欧美一级|