Сейчас на форуме: (+7 невидимых)

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

Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 25 мая 2014 14:25
· Личное сообщение · #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".

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

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

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

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

Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

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

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

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

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

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

a2ad_25.05.2014_EXELAB.rU.tgz - notepad.exe



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

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

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

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

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

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

Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

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

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

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

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

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

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

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

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



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

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

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

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

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

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

Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

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

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

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

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

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



Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

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

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

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

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

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

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

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

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

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

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



Ранг: 19.2 (новичок), 12thx
Активность: 0.030
Статус: Участник

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

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



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

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

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

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

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

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

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




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 26 мая 2014 17:49 · Поправил: -=AkaBOSS=-
· Личное сообщение · #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 (новичок), 2thx
Активность: 0.060
Статус: Участник

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

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

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

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

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

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

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

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

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

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

Ответил в ПМ.


 eXeL@B —› Вопросы новичков —› Не могу выполнить свой код во время выбора имени для сохраняемого файла в "notepad.exe"
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати