![]() |
|
Модераторы: Poseidon |
![]()
|
|
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
вывести список всех исполняемых фалов из выбранного каталога
|
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: нет Всего: 45 |
Выбрал папку, вывел список. Что-нибудь еще?
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| vol4ek |
|
||||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
наверное дело в неумении все это сделать
|
||||
|
|||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
фишка в том что не только exe файлы являются исполняемыми, нужно открывать и читать заголовок если ест PE, то файл считается исполняемым и его выводим, как реализовать это
|
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Можешь проверять на MZ в начале файла. Если хочешь дальше пойти - PE формат тебе в помощь.
IMAGE_DOS_HEADER, а дальше IMAGE_NT_HEADERS и т.п. Но лучше бы описать что в конечном итоге хочешь, а то лично для меня ты выглядишь очередным нубо заражателем. Или того хуже антивирусописателем. Это сообщение отредактировал(а) _zorn_ - 4.9.2016, 07:40 |
|||
|
||||
| vol4ek |
|
||||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
все когда-то с чего-то начиналось Добавлено через 1 минуту и 36 секунд
вот это я почему-то совсем упустил. достаточно простой способ |
||||
|
|||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
vol4ek, можешь помочь и реализовать проверку на MZ?
|
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
||||
|
||||
| vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
открыть файл, прочитать первых 2 байта, сравнить с 0x4D и 0x5A, если совпадают, то, скорее всего, файл PE. потом закрыть файл, (освободить память).
Добавлено через 2 минуты и 7 секунд
да и нынешние антивири даже внедрение функций не всегда пропускают и внедрение кода, неговоря уже про это детское баловство автора Добавлено через 3 минуты и 36 секунд vasadisim, рассказывай что делаем аж интересно стало |
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
В книге Владислава Пирогова "Ассемблер и дизассемблирование" представлена программа, с помощью которой можно определить является ли данный файл PE-модулем (см. листинг 1.14 и приложение П1).
А вообще, соглашусь с vol4ek и _zorn_: раз вы не в силах проверить два первый байта файла, то вы выбрали непосильную задачу. Даже если вам тут напишут решение, то пользы от этого вам, как программисту, никакой не будет. Начните с более простых вещей. |
|||
|
||||
| vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
да и вообще, то, что задумал автор, (вангану, что дописать что-нибудь в файл) у него не получится. точнее получится но сразу сработает антивигусное ПО. вот был бы у него валидный сертификат для подписи, другое дело. а так... все мы это делали когда-то |
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
Вот написал код, но он пишет что exe файлы не PE структуры, помогите разобраться и указать на ошибки
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
HANDLE, который вы получаете с помощью FindFirstFile нельзя использовать в ReadFile. Он используется для FindNextFile.
Что бы получить HANDLE файла, информация о котором хранится в переменной fd, нужно открыть этот файл. Для этого нужно сформировать путь к этому файлу. Это сделать нетрудно. Для конкретно вашего примера код будет выглядеть примерно следующим образом:
Только учтите, что в данном случае вы не проверяете подпапки, а только корневой каталог диска C:\\. |
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
rudolfninja, спасибо большое, а для того чтобы с заходом в каталоги, нужно рекурсию организовать?
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
Да, что бы еще и подкаталоги все пройти нужно написать рекурсивную функцию. В интернете примеров этой функции полно.
|
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
rudolfninja, так хорошо, а если я хочу выводить только файлы PE и задавать каталог с консоли, то как мне это реализовать?
|
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
Вот я нашел впринципе, нужно только организовать вывод файлов только c PE структурой
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
В данной теме уже есть пример как определить PE файл. После того, как вы получили информацию о файле составляете полный путь (folderpath + wfd.cFileName), получаете HANDLE этого файла, читаете первые 2 байта из этого файла и сравниваете их с MZ
|
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
rudolfninja, что я неправильно делаю с путем?
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
Инициализируете его неправильно.
Во-первых, я не очень понимаю зачем делать это: L"\\\\?\\". Достаточно просто пути, который ввел пользователь. Во-вторых,
Тоже что то непонятное. Просто возьмите ту часть, которую пользователь ввел как параметр и прибавьте к ней имя файла. Только в вашем случае еще нужно символ * удалить. Я бы в принципе его не вводил с клавиатуры, а добавлял программно. |
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
rudolfninja, Так? я правильно Вас понял?
Это сообщение отредактировал(а) vasadisim - 8.9.2016, 18:48 |
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
Почти. Вот вам рабочий вариант. Разбирайтесь.
В качестве папки просто вводите путь как папке без всяких звездочек и слешей, например e:\install
А вообще, вы выбрали непосильную для вас задачу. Как-то слабо вы знаете программирование для подобных заданий. Лучше бы основы языка выучили хорошо, а потом брались за более сложные вещи. |
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
rudolfninja, спасибо большое
тут косяк был, забыл + L"\\*" |
|||
|
||||
| vasadisim |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.9.2016 Репутация: нет Всего: нет |
rudolfninja, я вас наверное уже замучил, но не могли бы вы мне подсказать как выводить только исполняемые файлы?
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 3 Всего: 6 |
Мне совсем нетрудно подсказать, но вы спрашиваете элементарное. Исходя из ваших вопросов я понимаю, что в программировании вы не понимаете почти ничего. И пользы для вас, как для программиста, от моих ответов никакой.
|
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
А в баше это делается одной строчкой
Это сообщение отредактировал(а) _zorn_ - 9.9.2016, 07:35 |
|||
|
||||
| Aoizora |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.11.2016 Репутация: нет Всего: нет |
Что тут все так про детект разговорились? Втыкаешь в начало WinMain выделение и освобождение четырех байт памяти, запись туда и освобождение полмиллиона раз в цикле, и половина антивирусных эмуляторов отваливаются. Можно еще нетапи поюзать, они не эмулируются.
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |