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

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


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

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

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

 eXeL@B —› Вопросы новичков —› Различное выполнение программы в отладчике и в реале
Посл.ответ Сообщение

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

Создано: 3 марта 2015 23:43 · Поправил: samtehnik New!
Цитата · Личное сообщение · #1

Доброго времени.
Не могу разрешить элементарную проблему с копированием через CopyFile.
Дело в том что в отладчике все работает,а без него не пашет.Пробовал копировать через маппинг,но почему то опять в OllyDbg все гуд,а в обычном запуске нет.
Выдрал кусочек файла, посмотрите кому не сложно.Сравните под отладчиком и без.Файл сам себя копирует в "C:\p1232.exe" (по крайней мере должен).

Добавлено спустя 2 минуты
забыл прикрепить

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

Ранг: 58.0 (постоянный)
Статус: Участник

Создано: 4 марта 2015 00:02 New!
Цитата · Личное сообщение · #2

Может прав не хватает?

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

Создано: 4 марта 2015 00:25 · Поправил: samtehnik New!
Цитата · Личное сообщение · #3

От имени администратора стоит галка.Права на запись изменение ,везде галки.В безопасном режиме тоже не пошло.
Прав должно хватать.
Я так понял у вас работает?!

Ранг: 58.0 (постоянный)
Статус: Участник

Создано: 4 марта 2015 00:54 · Поправил: hlmadip New!
Цитата · Личное сообщение · #4

У меня ситуация такая же как у тебя, прочитай, может поможет
http://www.wasm.ru/forum/viewtopic.php?id=45011

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


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

Создано: 4 марта 2015 01:38 New!
Цитата · Личное сообщение · #5

Ну знал же что проблема элементарная).
цитирую :
Все очень просто и CopyFile тут не причем. Дело в GetCommandLine, так как из названия функции уже понятно, что она предназначена для получения командной строки, а не полного имени файла. При запуске в отладчике у вас нет пробела который разделяет имя файла и передаваемые аргументы в командной строке, а при обычном запуске он есть.Решение в том что надо использовать GetModuleFileName().

Спасибо большое дружище! А то еще чуть-чуть и у меня бы точно крыша поехала


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

Создано: 4 марта 2015 01:54 New!
Цитата · Личное сообщение · #6

тут сразу два бага.
во-первых, если в пути к модулю и его имени нет пробелов, первым символом будет буква диска, а не кавычка.
во-вторых, винда независимо от наличия аргументов добавляет в конец командной строки пробел.

если не понятно, вот два лога API Logger'а:
Code:
  1. GetCommandLineA() ret: 001424B0 -> "C:\primer1.exe "
  2. CopyFileA(001424B1: ":\primer1.exe", 00403000: "C:\p1232.exe", 00000000) ret: 00000000
  3.  
  4. GetCommandLineA() ret: 001424D8 -> ""C:\New Folder\primer1.exe" "
  5. CopyFileA(001424D9: "C:\New Folder\primer1.exe"", 00403000: "C:\p1232.exe", 00000000) ret: 00000000


в первом случае съедается буква диска, во втором - парсер дохнет на неэкранированной и незакрытой кавычке

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

Создано: 4 марта 2015 02:44 New!
Цитата · Личное сообщение · #7

Буду знать ,спасибо
 eXeL@B —› Вопросы новичков —› Различное выполнение программы в отладчике и в реале
Эта тема закрыта. Ответы больше не принимаются.

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

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