![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: 1 Всего: 1 |
Нужны примеры исходников на С/С++ для работы с Pe-заголовками.
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: 1 Всего: 1 |
Под работой я понимаю извлечение всякой полезной информации по типу таблиц экспорта,импорта.
За линк спасибо , информации по Pe заголовкам у меня хватает. Мне бы так чтобы самому как можно меньше писать... |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
Leksey , очень спецовые исходники есть на
http://vx.netlux.org в журналах 29-A. Там же адреса сайтов авторов исходников. А так вот держи один исходничок от просветленного y0da. Присоединённый файл ( Кол-во скачиваний: 14 ) ![]() |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
Leksey,вот нашел ещё один исходник (авторство не знаю) ; это исходник полиморфного упаковщика exe-модулей....
Очень навороченный ......... Прицепить не реально - размер великоват. Вот отсюда можно скачать: http://www.wasm.ru/baixado.php?mode=tool&id=188 Это сообщение отредактировал(а) 4udo - 29.4.2006, 09:45 |
|||
|
||||
4udo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 13.4.2006 Где: Казахстан Репутация: 1 Всего: -1 |
А этот вообще на С!!!!!!!!!!!!!!!!!!!
Coded by Cronos!!!! Зацени............... ![]() Это сообщение отредактировал(а) 4udo - 30.4.2006, 16:54 Присоединённый файл ( Кол-во скачиваний: 28 ) ![]() |
|||
|
||||
criz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.2.2008 Репутация: нет Всего: нет |
А как можно узнать параметры, переданные фукнции? Допустим, прочитал я таблицу импорта, узнал какие функции используются. Можно ли узнать переданные параметры?
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
criz, для этого есть отладчик и дизассемблер
|
|||
|
||||
Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Вот тут хорошее описание PE заголовков
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
именно в PE и COFF, для этого служит формат формирования декорированных имен функций, т.е. в самом названии эти данные могут присутствовать, в зависимости от способа линковки символов функции, экспортированные и слинкованные как extern "C", в общем случае, такой информации в PE не предоставляют, только общие соглашения: размер пула параметров, порядок параметров в стеке(прямой, обратный) и условие эпилога(выталкивать стек или нет на выходе) в общем случае, это не надежный источник информации, поскольку переопределить любое объявление можно вручную без всяких условий декорирования (как, например, сделано в большинстве API), обычно используется информация из символьных БД как правило, такие базы весят в десятки раз больше, приложений,которые они описывают, поэтому ими редко пользуются повторно не экспортируемые функции, в PE, именуются вообще крайне редко, так что они актуальны только для COFF-образов по декорированию подробнее тут: http://members.ozemail.com.au/[email protected]/index.html http://msdn.microsoft.com/en-us/library/deaxefa7(VS.71).aspx а по базам - ключ для поиска: PDB-файлы -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
если имя декорировано, отладчик или дизассемблер или просто просмотровщик его расшифрует
|
|||
|
||||
0xDX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 6.2.2009 Репутация: нет Всего: нет |
IDA pro
|
|||
|
||||
criz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.2.2008 Репутация: нет Всего: нет |
Вариант с отладчиками и дизасемблерами, типа IdaPro и др., не подходит. Думал, что можно все реализвать своими силами, имея в распоряжении только exe-шник.
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
criz, те в рантайме или статически?
|
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 1 Всего: 9 |
criz,
Зная соглашение можно понять скоко параметров автоматизировано! вызов на си, с stdcall: hDll = LoadLibrary("my1.dll"); на асме:
вот вывод: 1. нашел итем в ИАТ нужной ф-ции 2. нашел места ее вызова 3. Распознал соглашение вызова , stcall, cdecl - как правило , реже register- тут уже реверсить, ну и др 4. если stdcall, cdecl - работем и смотрим скоко пушей перед этим ! 5. если cdecl еще лучше, скоко байтов у стека убивается и ищем стоко пушей, если они есть значит именно эти параметры и есть ) ЗЫ: Почитай теорию декомпиляции |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
||||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
EvilsInterrupt, это не метод,
при оптимизации, cdecl параметры могут быть размазаны по коду:
скажи, сколько параметров у cdelc_proc_3?
тоже не метод, поскольку cdecl не выталкивает параметры на выходе, и они не обязательно кратны 4 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
GremlinProg, там где можно анализировать - надо анализировать
иначе можно везде подобрать частные случаи и сказать что это повод не решать задачу кроме того ТС вообще не сказал проги каких компиляторов он собрался анализировать, может там вообще не будет cdecl а будет fastcall |
|||
|
||||
GremlinProg |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
для всех случаев, решение я уже предложил, а моя критика по поводу твоего, по моему, очевидна: дизассемблирование - это эвристический метод, требующий интеллектуальных ресурсов, или проще говоря, условие его работы - непосредственное присутствие человека при решении, а изначальная суть вопроса, судя по ответам вопрошающих - автоматический разбор описаний функций из PE, т.е. дизассемблеры тут в принципе ни каким боком не стоят (***) я лишь показал, почему не стоят кстати, GoldFinch, тоже ответь на вопрос из моего предыдущего поста, это не частный случай, эту задачу тоже можно решить программно (только стоит ли оно того?)
на самом деле это странный формулировка, поскольку по наводящим ответам, уже давно понятно (***) ты сам, как раз и уходишь от решения, а зачем - непонятно -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |