Re[8]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 08:42
Оценка:
Здравствуйте, IID, Вы писали:

IID>>>2) Из другого процесса — получить список модулей интересующего.

N>>Так Сергей и спрашивает как это сделать...

IID>Не уверен Думаю, Сергей прекрасно знает и про PsApi обёртку, и про NativeAPI.


конечно.

я просто говорю, что зная адрес DLL в своем процессе недостаточно, что бы утверждать, что точно такая же DLL будет находиться по тому же адресу в другом процессе. Даже Kernel32
---
С уважением,
Сергей Мухин
Re[7]: Process up and ready?
От: IID Россия  
Дата: 22.05.09 09:06
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

IID>>Например:

IID>>1) По дефолтному SEH обработчику. Он изначально в kernel32 указывает. При условии, конечно, что окружение процесса уже создано и проинициализировано (чем занимается как раз тот стартап код из ntdll.dll).

СМ>Это по цепочке SEH надо пробегать?


Если приложение только что запустилось и на EP ещё не попало — там будет всего один SEH обработчик. Иначе — да, придётся просмотреть всю цепочку. В самых клинических случаях (теоретически) цепочка может и не оканчиваться обработчиком из Kernel32.
kalsarikännit
Re[8]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 09:09
Оценка:
Здравствуйте, IID, Вы писали:

IID>Здравствуйте, Сергей Мухин, Вы писали:


IID>>>Например:

IID>>>1) По дефолтному SEH обработчику. Он изначально в kernel32 указывает. При условии, конечно, что окружение процесса уже создано и проинициализировано (чем занимается как раз тот стартап код из ntdll.dll).

СМ>>Это по цепочке SEH надо пробегать?


IID>Если приложение только что запустилось и на EP ещё не попало — там будет всего один SEH обработчик. Иначе — да, придётся просмотреть всю цепочку. В самых клинических случаях (теоретически) цепочка может и не оканчиваться обработчиком из Kernel32.


ну т.е. этот метод оставим в качестве упражнения. Для боевого применения имхо не годится.
А если программа знает, что в н е будут так внедряться, то вообще легко обмануть уже нас
---
С уважением,
Сергей Мухин
Re[10]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 09:11
Оценка:
Здравствуйте, namux, Вы писали:

N>>>Если задача узнать куда загружена определенная длл — то возможно всегда: просто пишите свою ф-ию не используя перемещаемые выражения.


СМ>>и Вы нам сейчас расскажете как это делать на С/C++?


N>Что, проблема написать ф-ию которая вызывает GetModuleHandle?


Что-то совсем плохо у вас с логикой и со знаниями.

Написать легко — переслать тяжело.
---
С уважением,
Сергей Мухин
Re[10]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 09:20
Оценка:
Здравствуйте, namux, Вы писали:

N>Что, проблема написать ф-ию которая вызывает GetModuleHandle?



void ccc() {
HMODULE H = GetModuleHandle("AAA");
printf("%d\n", H);
}


Вот такую например попробуйте запихнуть и выполнить.
При этом версия С в приложении мб отличной от Вашей
---
С уважением,
Сергей Мухин
Re[11]: Process up and ready?
От: namux  
Дата: 22.05.09 09:30
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, namux, Вы писали:


N>>Что, проблема написать ф-ию которая вызывает GetModuleHandle?



СМ>
СМ>void ccc() {
СМ>HMODULE H = GetModuleHandle("AAA");
СМ>printf("%d\n", H);
СМ>}
СМ>


СМ>Вот такую например попробуйте запихнуть и выполнить.

СМ>При этом версия С в приложении мб отличной от Вашей

Да, все-таки проблема написать. Вот такая будет работать всегда:

void ccc() {
HMODULE hMod = LoadLibrary( "kernel32.dll" );
FARPROC p = GetProcAddress( hMod, "GetModuleHandle" );
HMODULE H = ( *p )( "AAA" );

// переслать в свой процесс

}
Re[12]: Process up and ready?
От: namux  
Дата: 22.05.09 09:37
Оценка:
Беру назад свой последниц пост: если kernel32 может быть по другому адресу — не сработает. Ступил, сорри
Re[13]: Process up and ready?
От: namux  
Дата: 22.05.09 09:43
Оценка:
Кстати ASLR, по-моему, актуально только для Висты, или нет?
Re[14]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 09:46
Оценка:
Здравствуйте, namux, Вы писали:

N>Кстати ASLR, по-моему, актуально только для Висты, или нет?



я бы сказал так:
Для Windows систем ASLR _появилась_ в Висте, и может быть актуальна в следующих системах, в том числе и Server'ных
---
С уважением,
Сергей Мухин
Re[12]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 09:52
Оценка:
Здравствуйте, namux, Вы писали:


СМ>>Вот такую например попробуйте запихнуть и выполнить.

СМ>>При этом версия С в приложении мб отличной от Вашей

N>Да, все-таки проблема написать. Вот такая будет работать всегда:


N>
N>void ccc() {
N>HMODULE hMod = LoadLibrary( "kernel32.dll" );
N>FARPROC p = GetProcAddress( hMod, "GetModuleHandle" );
N>HMODULE H = ( *p )( "AAA" );

N>// переслать в свой процесс

N>}
N>


Отлично. давайте теперь сделайте, что обещали, покажите, как Вашу ф-ию легко переместить в другое пространство. Что бы выполнить можно было бы.
---
С уважением,
Сергей Мухин
Re[13]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 09:53
Оценка:
Здравствуйте, namux, Вы писали:

N>Беру назад свой последниц пост: если kernel32 может быть по другому адресу — не сработает. Ступил, сорри


дык, эти MS еще не то придумают, что бы нам хуже жилось
---
С уважением,
Сергей Мухин
Re[9]: Process up and ready?
От: x64 Россия  
Дата: 22.05.09 10:36
Оценка:
СМ>и Вы нам сейчас расскажете как это делать на С/C++?

Только не говори, что не знаешь что такое базонезависимый код...
Re[10]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 11:12
Оценка:
Здравствуйте, x64, Вы писали:

СМ>>и Вы нам сейчас расскажете как это делать на С/C++?


x64>Только не говори, что не знаешь что такое базонезависимый код...


знаю, но не знаю как его сделать из нетривиальной ф-ии

как я понимаю, проблемы будут в следующем:
1. убедиться в отсутствии Сшной поддержки (некоторые опции могут порождать вызовы) (это легко)
2. найти размер ф-ии (я не знаю кошерных способов)
3. НЕ вызывать другие свои ф-ии, или их так же надо переносить (с транзитивным замыканием)
4. Не знаю что делать, если используются сегменты .rdata и .data (а в приведенной ф-ии есть .rdata)
5. при вызове импортной ф-ии хотелось бы убедится, что вызов происходит через правильную таблицы (разные компиляторы ее по разному генерят),

ну вроде все.
---
С уважением,
Сергей Мухин
Re[13]: Process up and ready?
От: namux  
Дата: 22.05.09 11:59
Оценка:
СМ>Отлично. давайте теперь сделайте, что обещали, покажите, как Вашу ф-ию легко переместить в другое пространство. Что бы выполнить можно было бы.

Насче того что Я говорил что это просто и что-то обещал — это Ваши фантазии. Я говорил что просто написать саму ф-ию, имея ввиду Windows XP (наверно, надо было это подчеркнуть). А как — смотрите здесь
Re[14]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 22.05.09 12:19
Оценка:
Здравствуйте, namux, Вы писали:


СМ>>Отлично. давайте теперь сделайте, что обещали, покажите, как Вашу ф-ию легко переместить в другое пространство. Что бы выполнить можно было бы.


N>Насче того что Я говорил что это просто и что-то обещал — это Ваши фантазии. Я говорил что просто написать саму ф-ию, имея ввиду Windows XP (наверно, надо было это подчеркнуть). А как — смотрите здесь


ф-ию тут может каждый написать. А если нет ее прямого внедрения — не интересно совсем. мб я не так понял.

а статья хорошая. Но вы ее не читали. т.к. там, например, прямо написано, что нельзя использовать строки.
---
С уважением,
Сергей Мухин
Re[10]: Process up and ready?
От: meerius Канада  
Дата: 23.05.09 11:38
Оценка:
Здравствуйте, x64, Вы писали:

СМ>>и Вы нам сейчас расскажете как это делать на С/C++?


x64>Только не говори, что не знаешь что такое базонезависимый код...

Я не знаю, но хочу об этом знать. Что читать?
«Мы с тобой в чудеса не верим, Оттого их у нас не бывает…»
Re[11]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 23.05.09 18:19
Оценка:
Здравствуйте, meerius, Вы писали:

СМ>>>и Вы нам сейчас расскажете как это делать на С/C++?


x64>>Только не говори, что не знаешь что такое базонезависимый код...

M>Я не знаю, но хочу об этом знать. Что читать?

я не знаю, что читать. давно ничего не читаю. Но задача внедрения кода решается один раз в жизни. потом можно забыть об этом и никогда не вспоминать ни задачу, ни все что с ней связано.
---
С уважением,
Сергей Мухин
Re[12]: Process up and ready?
От: meerius Канада  
Дата: 24.05.09 05:43
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, meerius, Вы писали:


СМ>>>>и Вы нам сейчас расскажете как это делать на С/C++?


x64>>>Только не говори, что не знаешь что такое базонезависимый код...

M>>Я не знаю, но хочу об этом знать. Что читать?

СМ>я не знаю, что читать. давно ничего не читаю. Но задача внедрения кода решается один раз в жизни. потом можно забыть об этом и никогда не вспоминать ни задачу, ни все что с ней связано.

У Рихтера целая глава есть по внедрению кода, но про базонезависимый код он даже не заикнулся
Я даже термин такой не слышал. Думаю, для общего развития не помешает об этом знать.
«Мы с тобой в чудеса не верим, Оттого их у нас не бывает…»
Re[13]: Process up and ready?
От: Сергей Мухин Россия  
Дата: 24.05.09 05:51
Оценка:
Здравствуйте, meerius, Вы писали:

M>Я даже термин такой не слышал. Думаю, для общего развития не помешает об этом знать.


ну термин немного по другому может звучать, например "перемещаемый код" или как-то еще


общее развитие хорошо, но я сразу вспоминаю Холмса,

- Ну, а как же Аристотель, Жанна д’Арк, Коперник?
— Коперник – знакомая фамилия. Что он сделал?
— Боже мой, так ведь же это он открыл, что Земля вращается вокруг Солнца. Или этот факт Вам тоже неизвестен?
— Но мои глаза говорят мне, что скорее Солнце вращается вокруг Земли. Впрочем, может быть он и прав, ваш, как его, Коперник.
— Простите меня, Холмс… Вы человек острого ума, это сразу видно. Вы превосходно знаете химию… Как же вы не знаете вещей, которые известны каждому школьнику?
— Ну, когда я был школьником, я это знал, а потом основательно забыл. Лишнего хлама мне не нужно.
— Учение Коперника, по-вашему, хлам?!
— Хорошо. Допустим, Земля вращается вокруг Солнца…
— То есть как “допустим”?...
— Хорошо, Земля вращается вокруг Солнца, но мне в моем деле это не пригодится.


я не уверен, что цитата из книги, мб она из фильма. в книге (как я помню) там еще рассуждения идут о чердаке

но смысл понятен.
---
С уважением,
Сергей Мухин
Re[14]: Process up and ready?
От: meerius Канада  
Дата: 24.05.09 06:13
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:


СМ>общее развитие хорошо, но я сразу вспоминаю Холмса,


СМ>

СМ>- Ну, а как же Аристотель, Жанна д’Арк, Коперник?
СМ>- Коперник – знакомая фамилия. Что он сделал?
СМ>- Боже мой, так ведь же это он открыл, что Земля вращается вокруг Солнца. Или этот факт Вам тоже неизвестен?
СМ>- Но мои глаза говорят мне, что скорее Солнце вращается вокруг Земли. Впрочем, может быть он и прав, ваш, как его, Коперник.
СМ>- Простите меня, Холмс… Вы человек острого ума, это сразу видно. Вы превосходно знаете химию… Как же вы не знаете вещей, которые известны каждому школьнику?
СМ>- Ну, когда я был школьником, я это знал, а потом основательно забыл. Лишнего хлама мне не нужно.
СМ>- Учение Коперника, по-вашему, хлам?!
СМ>- Хорошо. Допустим, Земля вращается вокруг Солнца…
СМ>- То есть как “допустим”?...
СМ>- Хорошо, Земля вращается вокруг Солнца, но мне в моем деле это не пригодится.


Вспоминаю Булгакова

- Я извиняюсь, — заговорил он подозрительно, — вы кто такой будете? Вы — лицо официальное?
Все это зависит от того, с какой точки зрения смотреть на предмет, все это, Никанор Иванович, условно и зыбко. Сегодня я неофициальное лицо, а завтра, глядишь, официальное! А бывает и наоборот, Никанор Иванович. И еще как бывает!

Рассуждение это ни в какой степени не удовлетворило председателя домоуправления. Будучи по природе вообще подозрительным человеком, он заключил, что разглагольствующий перед ним гражданин — лицо именно не официальное, а пожалуй, и праздное.


Вот жене моей точно не пригодится — она экономист
«Мы с тобой в чудеса не верим, Оттого их у нас не бывает…»
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.