Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анализ PE-заголовков 
:(
    Опции темы
Leksey
Дата 13.4.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



Нужны примеры исходников на С/С++ для работы с Pe-заголовками.
PM MAIL   Вверх
_hunter
Дата 14.4.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



что понимается по "работой"?
в любом случае идем сюда. потом и вторую часть почитать можно будет...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Leksey
Дата 14.4.2006, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: 1
Всего: 1



Под работой я понимаю извлечение всякой полезной информации по типу таблиц экспорта,импорта.
За линк спасибо , информации по
Pe заголовкам у меня хватает.
Мне бы так чтобы самому как можно меньше писать...
PM MAIL   Вверх
4udo
Дата 21.4.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 13.4.2006
Где: Казахстан

Репутация: 1
Всего: -1



Leksey , очень спецовые исходники есть на 
                    http://vx.netlux.org 
в журналах 29-A. Там же адреса сайтов авторов исходников.
А так вот держи один исходничок от просветленного y0da.
 

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  realignDLL.c 15,74 Kb
PM MAIL   Вверх
4udo
Дата 29.4.2006, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 13.4.2006
Где: Казахстан

Репутация: 1
Всего: -1



Leksey,вот нашел ещё один исходник (авторство не знаю) ; это исходник полиморфного упаковщика exe-модулей....
Очень навороченный .........
Прицепить не реально - размер великоват.
Вот отсюда можно скачать: 
                                 
 http://www.wasm.ru/baixado.php?mode=tool&id=188  

Это сообщение отредактировал(а) 4udo - 29.4.2006, 09:45
PM MAIL   Вверх
4udo
Дата 30.4.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 13.4.2006
Где: Казахстан

Репутация: 1
Всего: -1



А этот вообще на С!!!!!!!!!!!!!!!!!!!
Coded by Cronos!!!!
Зацени...............  smile 
 

Это сообщение отредактировал(а) 4udo - 30.4.2006, 16:54

Присоединённый файл ( Кол-во скачиваний: 28 )
Присоединённый файл  peinfo.c 11,60 Kb
PM MAIL   Вверх
criz
Дата 27.3.2009, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



А как можно узнать параметры, переданные фукнции? Допустим, прочитал я таблицу импорта, узнал какие функции используются. Можно ли узнать переданные параметры?
PM MAIL WWW   Вверх
GoldFinch
Дата 27.3.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



criz, для этого есть отладчик и дизассемблер
PM MAIL ICQ   Вверх
Acer
Дата 27.3.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Вот тут хорошее описание PE заголовков
PM MAIL   Вверх
GremlinProg
Дата 27.3.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(criz @  27.3.2009,  21:26 Найти цитируемый пост)
А как можно узнать параметры, переданные фукнции?

именно в 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-файлы


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GoldFinch
Дата 27.3.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



если имя декорировано, отладчик или дизассемблер или просто просмотровщик его расшифрует
PM MAIL ICQ   Вверх
0xDX
Дата 28.3.2009, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 6.2.2009

Репутация: нет
Всего: нет



IDA pro
PM MAIL   Вверх
criz
Дата 30.3.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 13.2.2008

Репутация: нет
Всего: нет



Вариант с отладчиками и дизасемблерами, типа IdaPro и др., не подходит. Думал, что можно все реализвать своими силами, имея в распоряжении только exe-шник.

PM MAIL WWW   Вверх
GoldFinch
Дата 30.3.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



criz, те в рантайме или статически?
PM MAIL ICQ   Вверх
EvilsInterrupt
Дата 31.3.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 1
Всего: 9



criz
Зная соглашение можно понять скоко параметров автоматизировано!

вызов на си, с stdcall:

hDll = LoadLibrary("my1.dll");

на асме:

Код

lea eax,off my1_dll_str ; "my1.dll"
push eax
call dword [IAT_Item]
mov [adddr],eax


вот вывод:
1. нашел итем в ИАТ нужной ф-ции
2. нашел места ее вызова
3. Распознал соглашение вызова , stcall, cdecl - как правило , реже register- тут уже реверсить, ну и др
4. если stdcall, cdecl - работем и смотрим скоко пушей перед этим !
5. если cdecl еще лучше, скоко байтов у стека убивается и ищем стоко пушей, если они есть значит именно эти параметры и есть )

ЗЫ:
Почитай теорию декомпиляции
PM MAIL WWW ICQ Jabber   Вверх
GoldFinch
Дата 31.3.2009, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



Цитата(EvilsInterrupt @  31.3.2009,  08:50 Найти цитируемый пост)
и смотрим скоко пушей перед этим

тогда уж сразу лучше искать в коде функции "ret xx" и делить xx на 4
PM MAIL ICQ   Вверх
GremlinProg
Дата 31.3.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



EvilsInterrupt, это не метод,
при оптимизации, cdecl параметры могут быть размазаны по коду:
Код

push [a]
call cdelc_proc_1
push [b]
push [c]
call cdelc_proc_2
call cdelc_proc_3
add esp,0ch

скажи, сколько параметров у cdelc_proc_3?
Цитата(GoldFinch @  31.3.2009,  11:05 Найти цитируемый пост)
тогда уж сразу лучше искать в коде функции "ret xx" и делить xx на 4

тоже не метод, поскольку cdecl не выталкивает параметры на выходе, и они не обязательно кратны 4


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GoldFinch
Дата 31.3.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



GremlinProg, там где можно анализировать - надо анализировать
иначе можно везде подобрать частные случаи и сказать что это повод не решать задачу

кроме того ТС вообще не сказал проги каких компиляторов он собрался анализировать, может там вообще не будет cdecl а будет fastcall
PM MAIL ICQ   Вверх
GremlinProg
Дата 31.3.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(GoldFinch @  31.3.2009,  16:27 Найти цитируемый пост)
GremlinProg, там где можно анализировать - надо анализироватьиначе можно везде подобрать частные случаи и сказать что это повод не решать задачу

для всех случаев, решение я уже предложил, а моя критика по поводу твоего, по моему, очевидна: дизассемблирование - это эвристический метод, требующий интеллектуальных ресурсов, или проще говоря, условие его работы - непосредственное присутствие человека при решении, а изначальная суть вопроса,

судя по ответам вопрошающих - автоматический разбор описаний функций из PE, т.е. дизассемблеры тут в принципе ни каким боком не стоят (***)

я лишь показал, почему не стоят

кстати, GoldFinch, тоже ответь на вопрос из моего предыдущего поста,
это не частный случай, эту задачу тоже можно решить программно (только стоит ли оно того?)

Цитата(GoldFinch @  31.3.2009,  16:27 Найти цитируемый пост)
кроме того ТС вообще не сказал проги каких компиляторов он собрался анализировать, может там вообще не будет cdecl а будет fastcall

на самом деле это странный формулировка, поскольку по наводящим ответам, уже давно понятно (***)
ты сам, как раз и уходишь от решения,
а зачем - непонятно


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0940 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.