Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

прокси   Найти похожие ветки 

 
Petr   (2006-11-28 22:50) [0]

как заставить программу работать через мой проксик если в ней нет возможность работать через прокси по умолчанию


 
Чапаев ©   (2006-11-28 22:56) [1]

Ищи программы типа ProxyCap, FreeCap...


 
Petr   (2006-11-29 00:08) [2]

нет вы непоняли! я какрас хочу написать программу типа ProxyCap, FreeCap...


 
Eraser ©   (2006-11-29 02:18) [3]

> [2] Petr   (29.11.06 00:08)

есть 2 варианта.
1. подмена вызовов сетевого API/
2. драйвер ядра.


 
Alek Aaz   (2006-11-29 05:46) [4]

Программа на твоем PC? Если нет, то не реально. (вернее реально, но не скажу как, а то сделаешь :-)  )
Если на твоем, то читаешь:
----------------------------------------------------------
Глубины INDY
Сделан перевод книги Indy In Depth.
Загрузить можно с сайта Анатолия Подгорецкого ©
в разделе Delphi Documentation Project
----------------------------------------------------------
http://podgoretsky.com/ddp.html
Раздел 13. "Перехватчики(Intercepts)"

2Eraser ©
Круто!


 
Орион ©   (2006-11-29 09:12) [5]

> [2] Petr   (29.11.06 00:08)

FreeCap вроде бы с исходниками распространяется.


 
Орион ©   (2006-11-29 09:16) [6]

> [4] Alek Aaz   (29.11.06 05:46)

Круто!


 
Petr   (2006-11-29 10:22) [7]

Alek Aaz спасибо! пошол читать!

п.с да на моем пк это все!


 
Орион ©   (2006-11-29 10:38) [8]

> [7] Petr   (29.11.06 10:22)
> Alek Aaz спасибо! пошол читать!

зря.


 
Eraser ©   (2006-11-29 13:59) [9]

> [4] Alek Aaz   (29.11.06 05:46)


> Раздел 13. "Перехватчики(Intercepts)"

эти "перехватчики" совсем из другой оперы.


 
Орион ©   (2006-11-29 17:20) [10]

> [9] Eraser ©   (29.11.06 13:59)

Сейчас про браузеры разговоры начнутся :)


 
Reindeer Moss Eater ©   (2006-11-29 17:30) [11]

как заставить программу работать через мой проксик если в ней нет возможность работать через прокси по умолчанию

Указать вместо целевого хоста и порта хост и порт своего прокси.


 
Petr   (2006-11-29 19:05) [12]

чето я прочитал но походу это для своего приложения! только в нутри него? я так понял?


> Указать вместо целевого хоста и порта хост и порт своего
> прокси.

я немогу этого в ней указать! она этого непредусматривает!!! вот я и спрашиваю что делать! как это делать!


 
Орион ©   (2006-11-29 19:53) [13]

> [12] Petr   (29.11.06 19:05)

ответ в [3]


 
Petr   (2006-11-30 00:40) [14]

1. подмена вызовов сетевого API/
2. драйвер ядра.
это?? но я неумею ничего такого! пожалусто материал по этому вопросу и примеры!!!


 
grisme ©   (2006-11-30 00:56) [15]

Petr   (30.11.06 00:40) [14]
а код заодно дописать?

ЗЫ. топать и гуглить :P


 
Petr   (2006-11-30 01:39) [16]

не код я сам :) мне нравится! но токо когда я знаю что делаю! а это не тот случай :( хелп плиз ;)


 
Eraser ©   (2006-11-30 01:53) [17]

> [14] Petr   (30.11.06 00:40)

если бы это было просто - было бы сотни программ вроде ProxyCap, FreeCap.
прежде чем перехватывать сетевые ф-ции или перенапралять запросы, нужно разобраться как оно все работает и какая ф-ция для чего нужна.


 
Alek Aaz   (2006-11-30 06:11) [18]

2 Орион ©   (29.11.06 10:38) [8]
>Зря

А что так? :)

2Eraser ©   (29.11.06 13:59) [9]
>эти "перехватчики" совсем из другой оперы.

Ну так просветите для чего и как их использовать? Вроде, черным по белому написано:
Они могут быть использованы для реализации шифрования, сжатия, статических коллекторов или ограничения трафика
Только ничего конкретного не написано как их юзать :-)

2Petr
Не расстраивайся :-)  Есть другой путь.
Библиотека WinPcap.
Взять здесь -> http://www.winpcap.org/
Обертка для Delphi здесь -> http://www.nzlab.dk/codesnippets.htm
Там же, демокласс для снифера.
Основные процедуры в Packet32.pas
PacketReceivePacket и PacketSendPacket
Изучай.
Настоятельно рекомендую поставить сниффер Ethereal c www.ethereal.com для понимания структуры пакетов.


 
Reindeer Moss Eater ©   (2006-11-30 10:16) [19]

я немогу этого в ней указать! она этого непредусматривает!!! вот я и спрашиваю что делать! как это делать!

С каким же хостом эта программа работает?
С никаким?
Тогда ей и прокси не нужен.


 
Petr   (2006-11-30 11:09) [20]


> С каким же хостом эта программа работает?
> С никаким?
> Тогда ей и прокси не нужен.

с тем который в ней прописан! и в ней нет возможности его менять! чего тут непонять то??


 
wal ©   (2006-11-30 11:19) [21]


> [20] Petr   (30.11.06 11:09)
А прописан именем или адресом?


 
Орион (из универа)   (2006-11-30 11:28) [22]


> Alek Aaz   (30.11.06 06:11) [18]
> 2 Орион ©   (29.11.06 10:38) [8]
> >Зря
>
> А что так? :)

А ты вопрос понял? :)
Скорее всего неправильно понял, потому и смотри [9].


 
Reindeer Moss Eater ©   (2006-11-30 12:19) [23]

с тем который в ней прописан! и в ней нет возможности его менять! чего тут непонять то??

А hosts файл уже отменили?
Или там не имя а адрес прописан?


 
Reindeer Moss Eater ©   (2006-11-30 12:21) [24]

Даже если в проге прописан IP, обмануть её очень легко.
Отключаемся от инета и указываем дефолтным шлюзом свою машину со своим проки.
Все.


 
Anatoly Podgoretsky ©   (2006-11-30 12:30) [25]

> Reindeer Moss Eater  (30.11.2006 12:19:23)  [23]

> А hosts файл уже отменили?
> Или там не имя а адрес прописан?

А hosts он двухнаправленый и прямая и обратная зона одновременно.


 
Reindeer Moss Eater ©   (2006-11-30 12:33) [26]

Задача-то просто пропустить трафик через свой прокси.
Если в программе адрес жестко зашито доменное имя целевого хоста, то файла hosts для этого достаточно.

Если зашит IP, то спасет фокус с дефолтным шлюзом.


 
Eraser ©   (2006-11-30 15:08) [27]

> [18] Alek Aaz   (30.11.06 06:11)


> Ну так просветите для чего и как их использовать? Вроде,
> черным по белому написано:

их можно использовать только в своем приложении и только в связке с другими компонентами Indy.


 
Petr   (2006-12-01 00:18) [28]


> Если зашит IP, то спасет фокус с дефолтным шлюзом.

да зашит IP что за фокус??
и идеи отключения от сети не подходять! мне нужен полный контроль над всеми пакетами!!! хочу пропускаю хочу нет в обе стороны в зависимости от содержимого пакетов... вообщем она должна быть в сети!


 
Reindeer Moss Eater ©   (2006-12-01 09:12) [29]

мне нужен полный контроль над всеми пакетами!!!

Нужен контроль - читай внимательно ветку.


 
Alek Aaz   (2006-12-01 12:12) [30]

2 Eraser ©   (30.11.06 15:08) [27]
> > [18] Alek Aaz   (30.11.06 06:11)
> > Ну так просветите для чего и как их использовать? Вроде,
> их можно использовать только в своем приложении и только
> в связке с другими компонентами Indy.
:-)  
А мы вроде и делаем СВОЕ приложение и МОЖЕМ использовать  ДРУГИЕ компоненты Indy.

Как я понял задачу (образно).
Есть программа которая скомпилирована и шлет пакеты на IP адрес 10.1.1.1 А нужно слать пакеты на 192.168.1.1 Изменить IP адрес 10.1.1.1 не представляется возможним.
Господин Petr хочет создать программу - аналог proxy-сервера которая будет перенаправлять запросы на нужный ему IP адрес.
И в данной ветке его интересует как заставить программу посылать пакеты на его прокси программу что впрочем одно и тоже что и подмен пакетов.
Все верно?
Если да, то можно создать программу отлавливающую пакет и подменяющую заголовок пакета.
Кстати, можно попробовать сделать через команду arp -s 10.1.1.1 Нужный:тебе:mac:адрес:машины

Может сработать. Все зависит от реализации сервера.


 
Anatoly Podgoretsky ©   (2006-12-01 16:47) [31]

> Petr  (01.12.2006 00:18:28)  [28]

Пакетный файрвол.


 
Anatoly Podgoretsky ©   (2006-12-01 16:48) [32]

> Alek Aaz  (01.12.2006 12:12:30)  [30]

Верно но не все, прокси для этого не требуется, требуется НАТ сервер.


 
Anatoly Podgoretsky ©   (2006-12-01 16:50) [33]

> Alek Aaz  (01.12.2006 12:12:30)  [30]

> Если да, то можно создать программу отлавливающую пакет и подменяющую заголовок пакета.

А вот это как раз и есть НАТ, а не прокси. Если конечно не углубляться в тонкости терминологии, что такое прокси.


 
Eraser ©   (2006-12-01 18:20) [34]

> [30] Alek Aaz   (01.12.06 12:12)


> А мы вроде и делаем СВОЕ приложение и МОЖЕМ использовать
> ДРУГИЕ компоненты Indy.

из

> [0] Petr   (28.11.06 22:50)
> как заставить программу работать через мой проксик если
> в ней нет возможность работать через прокси по умолчанию

и тем более

> нет вы непоняли! я какрас хочу написать программу типа ProxyCap,
> FreeCap...

это не очевидно, как я понял, автору требуется заставить другую программу работать через свой прокси.


 
Petr   (2006-12-04 00:20) [35]


> как я понял, автору требуется заставить другую программу
> работать через свой прокси

так точно!


> Если да, то можно создать программу отлавливающую пакет
> и подменяющую заголовок пакета.

вот ее то и нужно сделать! как??? но правдо не только заголовок но это потом а для начала хоть бы и так!! как это делается?


 
Petr   (2006-12-06 22:41) [36]

ап


 
Eraser ©   (2006-12-06 22:47) [37]

> [36] Petr   (06.12.06 22:41)

все уже сказано в [3].


 
Petr   (2006-12-07 00:43) [38]

подмена вызовов сетевого API

КАК? надо делать hook? на что? помогите плиз


 
Eraser ©   (2006-12-07 03:38) [39]

> [38] Petr   (07.12.06 00:43)

читай Джеффери Рихтер "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows", там довольно подробно.

Еще раз повторю, никто готового решения тут не выложит, эт я не про перехват ф-ций, а про сабж. перехват ф-ций там далеко не самая сложная задача.


 
Levko   (2007-02-01 16:38) [40]

Я кстати думал об этом. Как это реализовывают:
1) Перехват футкций Winsock. Так делают FreeCap, SockCap.
   Достоинства: Простота.
  Недостатки: Внедрение влечёт за собой выделение памяти для изменённых DLL. Также очень часто этого ооочень не любят некоторые проги (запакованные ASProtect). Ну про ругательства антивирей и фаерволов я не говорю. Да и тормоза. Запускать программы надо через главное окно "проксификатора" что тоже не очень удобно.
2) Написание своего LSP (Layer service provider) и NSP (Name service provider).  Так делает Proxifier.
Достоинства: Не патчит программы. Запускать программы надо как обычно, а не через главное окно "проксификатора". Работет довольно быстро.
Недостатки: Давольно сложно писать этот драйвер. Для установки LSP нужны права админа. Не работает со службами. (Windows Update например).

Пока юзаю Proxifier. Но есть мысли разобраться и написать "проксификатор". Главное время найти :( Чтоб доки про это почитать...


 
хаха   (2007-06-11 17:30) [41]

TIEEvents = class(TComponent, IUnknown, IDispatch)
  private
     // Private declarations
   FConnected: Boolean;
    FCookie: Integer;
    FCP: IConnectionPoint;
    FSinkIID: TGuid;
    FSource: IWebBrowser2;
    FStatusTextChange: TIEStatusTextChangeEvent;
    FProgressChange: TIEProgressChangeEvent;
    FCommandStateChange: TIECommandStateChangeEvent;
    FDownloadBegin: TIEDownloadBeginEvent;
    FDownloadComplete: TIEDownloadCompleteEvent;
    FTitleChange: TIETitleChangeEvent;
    FPropertyChange: TIEPropertyChangeEvent;
    FBeforeNavigate2: TIEBeforeNavigate2Event;
    FNewWindow2: TIENewWindow2Event;
    FNavigateComplete2: TIENavigateComplete2Event;
    FDocumentComplete: TIEDocumentCompleteEvent;
    FOnQuit: TIEOnQuitEvent;
    FOnVisible: TIEOnVisibleEvent;
    FOnToolBar: TIEOnToolBarEvent;
    FOnMenuBar: TIEOnMenuBarEvent;
    FOnStatusBar: TIEOnStatusBarEvent;
    FOnFullScreen: TIEOnFullScreenEvent;
    FOnTheaterMode: TIEOnTheaterModeEvent;
  protected
     // Protected declaratios for IUnknown
   function QueryInterface(const IID: TGUID; out Obj): HResult; override;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
     // Protected declaratios for IDispatch
   function GetIDsOfNames(const IID: TGUID; Names: Pointer; NameCount, LocaleID:
      Integer; DispIDs: Pointer): HResult; virtual; stdcall;
    function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; virtual; stdcall;
    function GetTypeInfoCount(out Count: Integer): HResult; virtual; stdcall;
    function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; virtual; stdcall;
     // Protected declarations
   procedure DoStatusTextChange(const Text: WideString); safecall;
    procedure DoProgressChange(Progress: Integer; ProgressMax: Integer); safecall;
    procedure DoCommandStateChange(Command: Integer; Enable: WordBool); safecall;
    procedure DoDownloadBegin; safecall;
    procedure DoDownloadComplete; safecall;
    procedure DoTitleChange(const Text: WideString); safecall;
    procedure DoPropertyChange(const szProperty: WideString); safecall;
    procedure DoBeforeNavigate2(const pDisp: IDispatch; var URL: OleVariant;
      var Flags: OleVariant; var TargetFrameName: OleVariant; var PostData: OleVariant;
      var Headers: OleVariant; var Cancel: WordBool); safecall;
    procedure DoNewWindow2(var ppDisp: IDispatch; var Cancel: WordBool); safecall;
    procedure DoNavigateComplete2(const pDisp: IDispatch; var URL: OleVariant); safecall;
    procedure DoDocumentComplete(const pDisp: IDispatch; var URL: OleVariant); safecall;
    procedure DoOnQuit; safecall;
    procedure DoOnVisible(Visible: WordBool); safecall;
    procedure DoOnToolBar(ToolBar: WordBool); safecall;
    procedure DoOnMenuBar(MenuBar: WordBool); safecall;
    procedure DoOnStatusBar(StatusBar: WordBool); safecall;
    procedure DoOnFullScreen(FullScreen: WordBool); safecall;
    procedure DoOnTheaterMode(TheaterMode: WordBool); safecall;
  public
     // Public declarations
   constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure ConnectTo(Source: IWebBrowser2);
    procedure Disconnect;
    property SinkIID: TGuid read FSinkIID;
    property Source: IWebBrowser2 read FSource;
  published
     // Published declarations
   property WebObj: IWebBrowser2 read FSource;
    property Connected: Boolean read FConnected;
    property StatusTextChange: TIEStatusTextChangeEvent read FStatusTextChange write FStatusTextChange;
    property ProgressChange: TIEProgressChangeEvent read FProgressChange write FProgressChange;
    property CommandStateChange: TIECommandStateChangeEvent read FCommandStateChange write FCommandStateChange;
    property DownloadBegin: TIEDownloadBeginEvent read FDownloadBegin write FDownloadBegin;
    property DownloadComplete: TIEDownloadCompleteEvent read FDownloadComplete write FDownloadComplete;
    property TitleChange: TIETitleChangeEvent read FTitleChange write FTitleChange;
    property PropertyChange: TIEPropertyChangeEvent read FPropertyChange write FPropertyChange;
    property BeforeNavigate2: TIEBeforeNavigate2Event read FBeforeNavigate2 write FBeforeNavigate2;
    property NewWindow2: TIENewWindow2Event read FNewWindow2 write FNewWindow2;
    property NavigateComplete2: TIENavigateComplete2Event read FNavigateComplete2 write FNavigateComplete2;
    property DocumentComplete: TIEDocumentCompleteEvent read FDocumentComplete write FDocumentComplete;
    property OnQuit: TIEOnQuitEvent read FOnQuit write FOnQuit;
    property OnVisible: TIEOnVisibleEvent read FOnVisible write FOnVisible;
    property OnToolBar: TIEOnToolBarEvent read FOnToolBar write FOnToolBar;
    property OnMenuBar: TIEOnMenuBarEvent read FOnMenuBar write FOnMenuBar;
    property OnStatusBar: TIEOnStatusBarEvent read FOnStatusBar write FOnStatusBar;
    property OnFullScreen: TIEOnFullScreenEvent read FOnFullScreen write FOnFullScreen;
    property OnTheaterMode: TIEOnTheaterModeEvent read FOnTheaterMode write FOnTheaterMode;
  end;



Страницы: 1 2 вся ветка

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.02 c
2-1201985154
Бэтман
2008-02-02 23:45
2008.03.02
edit


2-1202037033
kas86
2008-02-03 14:10
2008.03.02
Считать определенный текст из файла


3-1192108400
Gurd
2007-10-11 17:13
2008.03.02
memo in database paradox


2-1202239909
Махс
2008-02-05 22:31
2008.03.02
Класс


2-1202463809
Первокласник Вася
2008-02-08 12:43
2008.03.02
TreeNode