Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Сэмитировать удаленный комп.


Автор: andrew_121 22.1.2010, 19:17
Привет.
Есть программа которая общается с другой программой по строго "вшитому" в нее IP.
Нужно сэмитировать удаленную программу.
Еще мысль, запустить локальный сервер, который будет прикидываться удаленным. Но не знаю, возможно ли это?
ОС: виндавз.

Подскажите направление, плиз.

Автор: kemiisto 22.1.2010, 19:27
Виртуальная машина не катит?

Имитация (от лат. imitatio - подражание)...

Автор: andrew_121 22.1.2010, 19:33
Цитата(kemiisto @  22.1.2010,  19:27 Найти цитируемый пост)
Виртуальная машина не катит?

не хотелось бы. но если не будет иного выхода, придется так и сделать.

Автор: jonie 22.1.2010, 23:03
можно прошить связку mac-ip используя arp команду... ну и вроде как себе послать.. наверно, так можно...

Автор: MAKCim 24.1.2010, 13:13
в linux легко
Код

# iptables -t nat -I OUTPUT 1 -d <вшитый IP> -j DNAT --to-destination 127.0.0.1

в windows по идее должен быть фильтр, аозволяющий проделать аналогичное

Автор: andrew_121 24.1.2010, 13:59
Цитата(MAKCim @  24.1.2010,  13:13 Найти цитируемый пост)
в linux легко

ух ты! уау!
все гениальное просто!


Цитата(MAKCim @  24.1.2010,  13:13 Найти цитируемый пост)
в windows по идее должен быть фильтр, аозволяющий проделать аналогичное 

сейчас в разделе видавз запощу.

Спасибо тебе!

Автор: GoldFinch 26.1.2010, 20:42
andrew_121, а в чем проблема, поменяй ip на 127.0.0.1

Автор: andrew_121 26.1.2010, 21:01
GoldFinch, не понял. у кого поменять? для кого поменять?

Автор: GoldFinch 26.1.2010, 23:08
andrew_121, у программы в которой ip зашит.
перешей, или перехвати connect.

Автор: andrew_121 26.1.2010, 23:22
Цитата(GoldFinch @  26.1.2010,  23:08 Найти цитируемый пост)
у программы в которой ip зашит.

так это бинарник smile можно конечно при помощи IDA попробовать, но может получиться так, что времязатраты окажутся зря.

Цитата(GoldFinch @  26.1.2010,  23:08 Найти цитируемый пост)
или перехвати connect. 

а это как?

Автор: GoldFinch 26.1.2010, 23:31
andrew_121, да, это надо уметь)
однако уметь тут много не надо
1) запускаешь программу в ollydbg, если протокол TCP ставишь бряк на connect (alt-E, ws2_32, ctrl-n, connect, F2),
если UDP - ставишь бряк на sendto
2) ждешь когда сработает бряк - смотришь откуда берется ip для заполнения sockaddr
3) если программа незапакована, патчишь ip в файле, если запакована - кодишь код который будет патчить ip в памяти

перехватить connect - это сразу пишешь код, который перехватывает connect и подменяет sockaddr

(fixed)

Автор: andrew_121 26.1.2010, 23:51
Цитата(GoldFinch @  26.1.2010,  23:31 Найти цитируемый пост)
перехватить connect - это сразу пишешь код, который перехватывает connect и подменяет sockaddr 

это как? smile 

Автор: GoldFinch 27.1.2010, 00:00
Цитата(andrew_121 @  26.1.2010,  23:51 Найти цитируемый пост)
это как?

ну например лезешь в IDA, смотришь по какому адресу лежит указатель на connect в таблице импорта
пишеш длл с кодом
Код

#include <windows.h>

int __stdcall connect_hook(
  __in  SOCKET s,
  __in  const struct sockaddr *name,
  __in  int namelen
)
{
     sockaddr sa = {AF_INET,...,127,0,0,1};
     return connect(s,sa,sizeof(sa));
}

BOOL WINAPI DllMain(HMODULE,DWORD ul_reason_for_call,LPVOID)
{
    if( DLL_PROCESS_ATTACH!=ul_reason_for_call ) return 1;

        *(int*)0x......= (int)&connect_hook;

    return 1;
}

и цепляешь ее к программе, в импорты добавляешь, или инжектом


Автор: andrew_121 27.1.2010, 01:17
спасибо. пробую.

Автор: MAKCim 27.1.2010, 13:03
 smile 
в который раз убеждаюсь, что linux и сеть созданы друг для друга ;)

Автор: GoldFinch 27.1.2010, 13:22
MAKCim, линукс, он конечно во многом развернут лицом к программисту (не на дельфи ;) ), 
но при этом развернут задом к пользователю, который не хочет юзать консоль, а хочет например чтобы программы типа excel'я и mathcad'a  можно было связать по OLE

Автор: MAKCim 27.1.2010, 14:10
GoldFinch, 
я не буду тут холиварить, да и вообще не буду холиварить на эту тему

весьма понравилась цитата с bash'а
Цитата

xxx: Linux - кривой до невозможности, так что ставить его не охота =\
yyy: Он просто повторяет изгибы рук владельца =)

;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)