ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1551  
Старый 13.09.2008, 20:21
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от FrMn  
поробуйте не в настройках, а явно, как у 0xc0de.

p.s. ваш перехват не годится для многопоточных приложений. также перехватчик intMessage или как он там, должен возвращать не 1, а то, что возвратит оригинальный MessageBox
Сделал, чтобы возвращал то что и оригинальный messageboxa;
явно, я так понял это так?
#pragma pack (push, 1);
struct jmp_far {
BYTE op_push;
DWORD arg;
BYTE op_ret;
};
#pragma pack (pop, 1);

лишнюю main() убрал.
Ничего не изменилось
 
Ответить с цитированием

  #1552  
Старый 13.09.2008, 20:35
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

2ntldr. Перед тем, как переписывать начало функции надо разрешить запись по адресу месадбокса с помощью функции VirtualProtect

http://msdn.microsoft.com/en-us/library/aa366898(VS.85).aspx

Установи защиту в PAGE_EXECUTE_READWRITE
не увидела с начала, что функи нет

И еще при выгрузке либы неплохо было бы байты восстанавливать в начале функции.

if (ul_reason_for_call == DLL_PROCESS_DETACH){

// код снятия перехвата

}

Последний раз редактировалось 0x0c0de; 13.09.2008 в 20:44..
 
Ответить с цитированием

  #1553  
Старый 13.09.2008, 21:18
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Добавил:
PHP код:
if(ul_reason_for_call == DLL_PROCESS_DETACH )
{
    
hookoff();

...
PHP код:
void hookoff(void) {
    
WriteProcessMemory(GetCurrentProcess(), (void*)adrmesbox, (void*)&buf6, &written);

Изменил:
PHP код:
void intercept(void) {
    
DWORD oldf;
    
int prot;
    
adrmesbox = (DWORD)GetProcAddress(GetModuleHandleA("user32.dll"),"MessageBoxA");
    if(
adrmesbox == 0)
        {
    
MessageBoxA(NULL"MessageBoxA не найден""ошибка"0);
    return;
        }
    
prot VirtualProtect((void*)adrmesbox,6,PAGE_EXECUTE_READWRITE,&oldf);
    if (!
prot) {
        
ExitProcess(0);
    }
    
jump.op_push 0x68;
    
jump.arg = (DWORD)&intMesbox;
    
jump.op_push 0xC3;
    
ReadProcessMemory(GetCurrentProcess(), (void*)adrmesbox, (void*)buf6, &written);
    
WriteProcessMemory(GetCurrentProcess(), (void*)adrmesbox, (void*)&jump6, &written);

 
Ответить с цитированием

  #1554  
Старый 13.09.2008, 21:48
FrMn
Познающий
Регистрация: 08.08.2008
Сообщений: 55
Провел на форуме:
369629

Репутация: 54
По умолчанию

проверь что возвращают Read(Write)ProcessMemory, можт исчо привилегею потипу SeDebugPrivilege получить?
 
Ответить с цитированием

  #1555  
Старый 13.09.2008, 22:07
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

2ntldr
Ненене. мего глючный код.

Надо так

Код:
jump.op_push = 0x68; 
jump.arg = (DWORD)&intMesbox; 
jump.op_ret = 0xC3;
А вы сначала написали

Код:
jump.op_push = 0x68; 
jump.arg = (DWORD)&intMesbox; 
jump.op_push = 0xC3;
Разница налицо. Теперь все пашет, проверила под отладчиком
 
Ответить с цитированием

  #1556  
Старый 13.09.2008, 22:35
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Спасибо большое) ошибка оказалась глупее чем все думали. пока что проверить возможности нет, тк свет вырубили, но уверен, чтоьпроблема решена.
 
Ответить с цитированием

  #1557  
Старый 15.09.2008, 12:14
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Есть обычное простенькое серверное приложение принимающее через сокет и выводящее в бесконечном цикле с определенным условием выхода текст.Со всеми пложенными bind,listen,accept.Оно расчитано на подключение одного клиента.Допустим если я захочу добавить в цикл условие выхода с возвратом ожидания на listen,допустим я туда буду возвращатся с помощью goto .Собственно вопрос куда ставить метку на listen?И что при этом надо в памяти очистить что бы можно было повторно подключится?
 
Ответить с цитированием

  #1558  
Старый 15.09.2008, 12:22
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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

  #1559  
Старый 15.09.2008, 13:36
Zakary
Участник форума
Регистрация: 28.09.2005
Сообщений: 180
Провел на форуме:
749734

Репутация: 34
По умолчанию

эээ...вообще для первоклассников вопрос
есть int x,y поменять местами значение x,y. если возможно без ввода дополнительных переменных, если нельзя, то ввести новые переменные.

тут два слова ответ..но какой?
 
Ответить с цитированием

  #1560  
Старый 15.09.2008, 14:37
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
есть int x,y поменять местами значение x,y. если возможно без ввода дополнительных переменных, если нельзя, то ввести новые переменные.
x = x + y;
y = x - y;
x = y - x;

как-то так =\

__________

как-то не так =\

Последний раз редактировалось iv.; 15.09.2008 в 14:54..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ