Как стать автором
Обновить
8
0

QA Engineer

Отправить сообщение

Консольное приложение readpe

Время на прочтение2 мин
Количество просмотров5.8K
В посте речь пойдет о консольной утилите ReadPE собственной разработки, которая парсит исполняемые файлы формата Portable Executable.

Отвечая на возможный вопрос: «Почему потребовался свой велосипед, если уже есть dumpbin?» скажу, что меня перестали удовлетворять многие известные утилиты подобного класса из-за их неспособности работать с хитровыдуманными и вручную созданными файлами. Взятые файлы входящие в известный набор Corkami и поданные на вход dumpbin, идущая в поставке с Visual Studio или pedump Мэтта Питрека в большинстве случаев откажутся работать с подобным файлом. Это связано с тем, что очень часто при написании подобных утилит опираются исключительно на официальное описание этого формата предоставляемого Microsoft. Несмотря на то, что сам формат достаточно простой, он тем не менее обладает весьма большим количеством подводных камней и лучшим руководством по этому формату является листинг кода из системного загрузчика в IDA Pro.

Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии11

Улучшение степени сжатия применяемого в UPX

Время на прочтение5 мин
Количество просмотров11K
От переводчика:

Под «капотом» следует перевод небольшого, но крайне полезного текстового файла "%UPX_SOURCE%\doc\filter.txt". В приведенном пути под UPX_SOURCE подразумевается файловый путь до исходных кодов к UPX версии 3.91.

Документ описывает достаточно важный аспект работы UPX называемый «фильтрацией» и при анализе упакованных с помощью UPX файлов крайне важно понимать как это работает. Все что описано про UPX также применимо и к другим упаковщикам.

Основная цель перевода это попытка помочь тем программистам кто пишет статические распаковщики исполняемых файлов. Другими словами эта информация будет полезной практикующим reverse-engineer-ам. Под статичеческим распаковщиком понимаю программу которая поданный на вход упакованный или запротекченный исполняемый файл анализирует и создает на выходе файл, как будто бы тот создан каким-либо компилятором. Особенностью такого типа распаковщиков в том что он работает исключительно на знании структуры защиты или упаковки файла, т.е. без применения «сброса дампа», «востановления импорта» и др. типов «читерства».

Понимание процесса фильтрации помогает при изучении упакованных файлов к примеру с помощью UPX, RLPack и др. В упакованных файла можно встретить код, где делаются некоторые «магические действиями» с маш. инструкциями переходов байты 0xE8, 0xE9 и др. Этой «магией» как раз и является «фильтрация». Она направлена на улучшение степени сжатия исполняемого файла.

Также знание о том как работает фильтрация может сохранить время специалиста в весьма сложных ситуациях. Бывает так, что получить кусок кода с фильтрацией за разумный срок вовсе невозможно, к примеру при работе с полиморфиками или с файлами где применяется виртуализация кода. Тогда знание о том как работает фильтрации позволит решить задачу по написанию кода дефильтрации без имения точного оригинального куска кода.

Почитать про фильтрацию в UPX
Всего голосов 37: ↑30 и ↓7+23
Комментарии6

Версия таблицы STL-контейнеров для печати

Время на прочтение1 мин
Количество просмотров8.6K
Думаю, что документ на который наткнулся будет также полезен и другим программистам.

Мне давно хотелось иметь все STL-контейнеры и их методы в более наглядном и удобном виде. До сего момента я не знал о том, что на известном ресурсе посвященном С++ cppreference.com выложен полезный PDF-файл содержащий в себе как раз то что мне надо. Вот прямая ссылка на container-library-overview-2012-12-27.

В этом документе учтены как C++03, так и C+11. Оба помечены разными цветами, что достаточно быстро дает понять с какой версии стандарта доступен тот или иной контейнер.
Всего голосов 41: ↑35 и ↓6+29
Комментарии4

Online UML editor

Время на прочтение1 мин
Количество просмотров99K
Сегодня в новостях от CodeProject проскочила ссылка на интересный online-редактор. Позволяет написать написать псевдокоде и получить диаграмму.
Собственно ссылка на codeuml
Всего голосов 12: ↑7 и ↓5+2
Комментарии3

Разработка функций RvaToRaw и RawToRva

Время на прочтение4 мин
Количество просмотров7.5K

Цель статьи


Целью этой статьи является желание автора показать некоторые нюансы по разработке функций RvaToRaw/RawToRva, которые являются важными для системных утилит работающих с исполнимыми файлами формата PE.

На кого нацелена статья?


  • Читатель знаком с форматом файлов «Portable Executable»
  • Читатель >= 1 раза писал парсер этого файла
  • Читатель отлично знает что такое «RvaToRaw»

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Информация

В рейтинге
5 113-й
Откуда
Железнодорожный (Московск.), Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность