eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: SaNX, CDK1234 (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Не могу выполнить свой код во время выбора имени для сохраняемого файла в "notepad.exe"
Посл.ответ Сообщение

Ранг: 10.7 (новичок)
Статус: Участник

Создано: 25 мая 2014 14:25 New!
Цитата · Личное сообщение · #1

Приветствую.

Задача -- выполнить свой код во время выбора имени для сохраняемого файла в "notepad.exe". Диалоговое окно, которое за это отвечает, вызывается при помощи WinAPI-функции GetSaveFileName. Что ж, открываю OllyDbg v2.01 -> нажимаю Ctrl-N -> ищу в списке импортированных функций GetSaveFileNameW -> Ctrl-R -> ставлю бряк на единственном месте, в котором происходит обращение к данной функции -> нажимаю F9 -> нажимаю Ctrl-S в запустившемся процессе, ввожу имя файла и нажимаю "Enter" -> бряк не срабатывает.

В чём дело? Что я могу делать не так?

Исполняемый файл "notepad.exe" брал из Windows Server 2012 R2 Datacenter, лежал в директории "C:\Windows\SysWOW64".

Заранее благодарю за возможные ответы.


Ранг: 147.4 (ветеран)
Статус: Участник

Создано: 25 мая 2014 14:44 New!
Цитата · Личное сообщение · #2

b0r3d0m
поставьте бряки не на переходники, а на сами функции GetSaveFileNameA/W и изучайте адреса возврата
если не сработало - хотя бы приложите подопытный файл. не у всех здесь под рукой имеется Windows Server 2012 R2 Datacenter

| Сообщение посчитали полезным: b0r3d0m


Ранг: 10.7 (новичок)
Статус: Участник

Создано: 25 мая 2014 15:03 New!
Цитата · Личное сообщение · #3

-=AkaBOSS=- пишет:
поставьте бряки не на переходники, а на сами функции GetSaveFileNameA/W и изучайте адреса возврата

Попробовал -- то же самое.

-=AkaBOSS=- пишет:
если не сработало - хотя бы приложите подопытный файл

Прикладываю.

{ Атач доступен только для участников форума } - notepad.exe

Ранг: 376.3 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 25 мая 2014 19:25 · Поправил: ELF_7719116 New!
Цитата · Личное сообщение · #4

b0r3d0m пишет:
Задача -- выполнить свой код во время выбора имени для сохраняемого файла в "notepad.exe".

Сама по себе, какая-то странная задача. Впрочем, дело Ваше.
b0r3d0m пишет:
Исполняемый файл "notepad.exe" брал из Windows Server 2012 R2 Datacenter

Не знаю, как там в 2k12, а в блокноте на 2k3 server GetSaveFileNameW нормально ловится. По крайней мере можно поставить бряк на CreateFileW и наверняка получить результат.

| Сообщение посчитали полезным: b0r3d0m


Ранг: 10.7 (новичок)
Статус: Участник

Создано: 25 мая 2014 19:37 · Поправил: b0r3d0m New!
Цитата · Личное сообщение · #5

ELF_7719116 пишет:
Сама по себе, какая-то странная задача. Впрочем, дело Ваше

Конечная задача, разумеется, не такая, но для её решения надо разобраться хотя бы с этим.

ELF_7719116 пишет:
Не знаю, как там в 2k12, а в блокноте на 2k3 server GetSaveFileNameW нормально ловится

Странно. Нет, я не спорю, что 99%, что туплю я, а не OllyDbg, но всё равно.

ELF_7719116 пишет:
По крайней мере можно поставить бряк на CreateFileW и наверняка получить результат

Ну, CreateFileW я не проверял, но GetSaveFileNameW упорно не получается поймать.

А Вы не могли бы посмотреть файл, который я приложил к своему предыдущему сообщению, пожалуйста? Ничего туда не вшивал, при желании могу выложить результаты сканирования на virustotal и virusscan.

Ранг: 376.3 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 25 мая 2014 19:53 New!
Цитата · Личное сообщение · #6

b0r3d0m пишет:
Ну, CreateFileW я не проверял

ну дык, проверьте.
b0r3d0m пишет:
А Вы не могли бы посмотреть файл

например мне, чтоб запустить exe'шник с 2k12 на 2k3 - нужно нехило извратиться с недостающими WinAPI (FindNLSString и тд).
зы: Неужели принципиально, чтоб ексешник был 2k12, возьмите XP или 2k3 и пачьте - блокнот он и в Африке блокнот.

| Сообщение посчитали полезным: _FUCKER_


Ранг: 10.7 (новичок)
Статус: Участник

Создано: 25 мая 2014 21:16 New!
Цитата · Личное сообщение · #7

ELF_7719116 пишет:
зы: Неужели принципиально, чтоб ексешник был 2k12, возьмите XP или 2k3 и пачьте - блокнот он и в Африке блокнот.

Думаю, что так и сделаю, но вопрос-то всё равно останется -- это я что-то делаю не так или наткнулся на какое-то неочевидное поведение отладчика?


Ранг: 147.4 (ветеран)
Статус: Участник

Создано: 25 мая 2014 21:20 New!
Цитата · Личное сообщение · #8

b0r3d0m
очень похоже на то, что API тут вообще не используется, а вызов диалога идёт через COM
{C0B4E2F3-BA21-4773-8DBA-335EC946EB8B} File Save Dialog
попробуйте проверить дебаггером адрес 4127D2. после вызова должно появиться искомое окно

Ранг: 10.7 (новичок)
Статус: Участник

Создано: 25 мая 2014 21:25 New!
Цитата · Личное сообщение · #9

-=AkaBOSS=- пишет:
очень похоже на то, что API тут вообще не используется, а вызов диалога идёт через COM

А как Вы это поняли, если не секрет?

-=AkaBOSS=- пишет:
попробуйте проверить дебаггером адрес 4127D2

OllyDbg v2.01 говорит, что такого адреса нет (Ctrl-G -> 4127D2).


Ранг: 147.4 (ветеран)
Статус: Участник

Создано: 25 мая 2014 21:33 New!
Цитата · Личное сообщение · #10

b0r3d0m пишет:
А как Вы это поняли, если не секрет

сталкивался уже с такими непонятными диалогами пару раз
прогуглил GUID и нашёл его в модуле

b0r3d0m пишет:
адреса нет (Ctrl-G -> 4127D2).

вероятно, модуль загрузился по другому адресу.
нужный адрес = rva 127D2 + базовый адрес загрузки модуля

Ранг: 19.3 (новичок)
Статус: Участник

Создано: 26 мая 2014 16:03 New!
Цитата · Личное сообщение · #11

Ни на Win8.1x64, ни на XP.SP3.x32 запустить цель не удалось. Там явная херня с экзешником. Мог-бы хоть выбрать ту цель, которая у всех работать будет

Ранг: 376.3 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 26 мая 2014 17:22 New!
Цитата · Личное сообщение · #12

_FUCKER_ пишет:
ни на XP.SP3.x32 запустить цель не удалось.

На XP оно принципиально не стартанет, ибо оригинальная SubSustemVersion = 6.2
_FUCKER_ пишет:
Там явная херня с экзешником

Вроде SizeofImage надо поправить (я в PeTools пересчитал), вероятно файло автор уже выложил после проведенной экзекуции.

Но я, в любом случае, не понимаю, зачем тс нужен GetSaveFileNameW и после него еще и код выполнить (разве что, вместо .txt, чтоб блокнот сохранял .exe файлы с исполняемым кодом, что как-бы намекает). Тем более
b0r3d0m пишет:
OllyDbg v2.01 говорит, что такого адреса нет (Ctrl-G -> 4127D2).

не может найти, где у него образ в памяти(впрочем, для тех кто до сих пор не знает - Alt+M).


Ранг: 147.4 (ветеран)
Статус: Участник

Создано: 26 мая 2014 17:49 · Поправил: -=AkaBOSS=- New!
Цитата · Личное сообщение · #13

_FUCKER_, ELF_7719116
да не напрягайтесь вы, ТС уже узнал то, что хотел
у него просто нет привычки закрывать за собой тему
равно как и объяснять, за каким чёртом он делает то что делает - см. его предыдущую тему про run dialog

ELF_7719116 пишет:
вероятно файло автор уже выложил после проведенной экзекуции.

файл похож на оригинальный - я прогнал его MD5 через вирустотал:
First submission 2013-09-26 20:36:34 UTC (8 месяцев назад)
Last submission 2014-05-18 14:15:38 UTC (1 неделя назад)

файл с таким хэшем уже сканили, и не раз

Ранг: 10.7 (новичок)
Статус: Участник

Создано: 26 мая 2014 21:15 New!
Цитата · Личное сообщение · #14

-=AkaBOSS=- пишет:
сталкивался уже с такими непонятными диалогами пару раз
прогуглил GUID и нашёл его в модуле

Ясно, спасибо.

-=AkaBOSS=- пишет:
вероятно, модуль загрузился по другому адресу.
нужный адрес = rva 127D2 + базовый адрес загрузки модуля

Понятно, буду смотреть.

_FUCKER_ пишет:
Там явная херня с экзешником

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

-=AkaBOSS=- пишет:
у него просто нет привычки закрывать за собой тему

Просто пока ещё не проверил на практике. Думаю, вопросы ещё найдутся.

-=AkaBOSS=- пишет:
равно как и объяснять, за каким чёртом он делает то что делает

Ответил в ПМ.
 eXeL@B —› Вопросы новичков —› Не могу выполнить свой код во время выбора имени для сохраняемого файла в "notepad.exe"

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS