- Битва потрошителей. Выбираем лучший редактор для вскрытия исполняемых файлов Windows
- Содержание статьи
- PE-Explorer
- FlexHex
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
- Вариант 2. Открой один материал
- Юрий Язев
- Exe file editor windows
- Asked by:
- Question
- All replies
- General Questions
- File Open
- File Save
- Resource Editor
- Command Line
- Plug-ins
Битва потрошителей. Выбираем лучший редактор для вскрытия исполняемых файлов Windows
Содержание статьи
Так как мы в основном исследуем исполняемые файлы и динамические библиотеки для Windows, я брал только те РЕ-редакторы, которые работают в этой ОС. Если какой-то из инструментов поддерживает другие операционные системы и их исполняемые файлы (например, ELF), то это только плюс, но в данном случае для нас особого значения не имеет.
Мы будем выбирать утилиты на основе разумных и понятных факторов: функциональность, цена, удобство использования и частота обновления. Совсем старые решения, позволяющие редактировать бинарники для MS-DOS или Windows 9x, нам рассматривать ни к чему. Если какой-то из редакторов распространяется платно, то мы воспользуемся ознакомительной версией и отдельно отметим, какие функции в ней доступны. Но самый главный критерий будет состоять во взломе настоящего кракми.
Чтобы не тратить время на создание подопытной программы, мы воспользуемся уже готовой — passCompare35 . Именно на ней и будем испытывать разные тулзы. По большому счету, чтобы взломать наш простой крякмис, PE-редактору надо обладать не такой уж широкой функциональностью: перейти по указанному адресу и переписать команду (желательно в дизассемблерном листинге). Править циферки в шестнадцатеричном дампе мне совсем не хочется (вероятно, тебе тоже), поэтому наличие встроенного дизассемблера запишем в ключевые свойства.
Как ты помнишь, с помощью отладчика мы нашли в памяти адрес инструкции (см. четвертую статью «Фундаментальных основ»), которая определяет ход выполнения программы при вводе пароля. А благодаря сведениям из третьей статьи этот виртуальный адрес у нас получилось преобразовать в физический, находящийся на носителе. Таким образом, перейдя в исполняемом файле по адресу 0x402801 и заменив там инструкцию test на xor , мы получим программу, принимающую любые пароли. Меньше слов, больше дела!
PE-Explorer
Разработчик: Heaventools Software
Сайт: http://www.heaventools.ru/pe-explorer.htm
Дата выхода последней версии: Октябрь, 2009
Стоимость: $129 – персональная лицензия
Под первым номером идет довольно распространенный редактор PE-Explorer. В отличие от своего собрата Resource Tuner, он способен редактировать не только ресурсы приложения, но и код. Несмотря на свой почтенный возраст, исправно работает даже в Windows 10. К сожалению, PE-Explorer умеет работать только с 32-битными файлами и при попытке открыть 64-битный бинарник сообщает об ошибке.
Утилита обладает богатой функциональностью: отображает все элементы заголовка РЕ, определяет, к каким DLL происходит обращение, предсказывает поведение программ и логику взаимодействия с другими модулями и даже открывает запакованные UPX, UPack или NSPack файлы. Кроме того, она позволяет просматривать и редактировать секции PE-файла, исследовать содержимое таблиц импорта и экспорта и проверять наличие и целостность цифровой подписи. В качестве «вишенки на торте» тут присутствует полноценный дизассемблер.
Но это только на словах, а на деле мы его сейчас проверим. Из-за того что продукт платный, я использовал триальную версию, готовую работать на протяжении 30 дней. Об урезанных функциях ничего сказано не было.
Запустим редактор и сразу же откроем наше подопытное приложение. PE-Explorer первым делом выводит информацию о заголовке PE-файла. Для получения сведений об остальных разделах достаточно пощелкать кнопки на панели инструментов. Жмем пиктограмму Disassembler и открываем окно для выбора поддерживаемых инструкций: SSE, SSE2 и прочее. Указываем необходимые и начинаем процесс нажатием кнопки Start Now .
В открывшемся окне большую часть занимает область с дизассемблерным листингом, чуть ниже располагается шестнадцатеричный дамп. Если в заголовке нижней панели выбрать вкладку Strings, то отобразятся все строки в исследуемом приложении. Так что поиском можно найти и эталонный пароль. Однако для этого пришлось бы перебрать весь внушительный список доступных строк, так что отложим этот вариант до худших времен.
Так как мы с помощью отладчика нашли адрес инструкции, которая отвечает за ход выполнения программы, то попробуем проверить этот адрес в PE-Explorer: нажимаем Ctrl-F (или Search → Find) и вводим адрес для поиска: 402801 .
Что ж, я немного разочарован результатом дизассемблирования. Даже отладчик в этом месте показывает мне инструкцию test , а здесь я вижу лишь начало ее шестнадцатеричного кода: 0х85 . При этом я не могу редактировать код! Зачем мне все эти возможности, если утилита не позволяет делать самую базовую вещь?
Я даже не могу списать этот недочет на ограничения демоверсии, так как о ее отличиях от платной ничего толком не сказано. Допускаю, что с теми целями, для которых этот продукт предназначен (статическое изучение приложения и вектора его выполнения), он справляется хорошо. Однако нашим требованиям программа не соответствует, поэтому смело вычеркиваю PE-Explorer из списка кандидатов.
FlexHex
Разработчик: Heaventools Software
Сайт: http://www.heaventools.ru/flexhex-hex-editor.htm
Дата выхода последней версии: Июль, 2018
Стоимость: $59,95
Думаю, нужно дать разработчику еще один шанс, поэтому рассмотрим другую утилиту Heaventools Software — hex-редактор FlexHex. Это инструмент для редактирования любых файлов, процессов или устройств в двоичном формате, ASCII и Unicode. По словам авторов, редактор умеет работать с файлами просто гигантского размера — 8 эксабайт. Кроме того, он поддерживает множество типов данных: байты, слова, двойные слова, восьмибитовые слова, различные десятичные значения со знаком и без, 32- и 64-битовые целые.
Сложные типы данных тут могут быть определены самим пользователем — это структуры, объединения, массивы, перечисления, строки и их сочетания. Обещают прямое редактирование любых значений, в том числе шестнадцатеричных, строковых, изменение областей памяти и типизированных данных. Поддерживаются битовые операции (NOT, AND, OR и XOR над блоками данных) и, конечно же, арифметические операции: сложение, вычитание, умножение, деление и взятие остатка.
Однако главная особенность FlexHex — это возможность сравнения файлов целиком или отдельными блоками. При этом использование карт сравнения позволяет сделать процесс более интуитивным и наглядным.
Все это хорошо, но как утилита справится со взломом — нашей элементарной задачкой? Отсутствие дизассемблера сразу намекает нам, что придется работать в hex-кодах. Запустим FlexHex и откроем с его помощью наш крякмис.
Первым делом попробуем найти смещение 402801 . Кликаем Navigate → Go To и в списке слева выбираем пункт Address, а в поле Enter address вводим значение для поиска. Убеждаемся, что включен режим Hex , и нажимаем кнопку Go To.
Однако результат поиска выносит нас далеко за границы приложения. Обрати внимание, что последние читаемые символы находятся по смещению 0x3659F0 . Если напрячь память, то вспоминается, что в заголовке РЕ базовый адрес (или адрес загрузки модуля) прописан как 0x400000 . А здесь он даже не учитывается!
Ладно, как говорил дедушка Ленин, мы «пойдем другим путем». Строго говоря, FlexHex не понимает формат РЕ и потому его нельзя признать полноценным PE-редактором. Так что нам ничего не остается, как править байтики. Из того же отладчика, где мы нашли проверяющую пароли инструкцию, возьмем уникальную последовательность байтов: 85 C0 74 3C 68 . Она покрывает ассемблерные команды:
Я выбрал такую длинную последовательность, чтобы не было ложных срабатываний. За ключевым байтом 0x74 тут скрывается ассемблерная инструкция JZ . Чтобы сделать из нее JNZ , достаточно переписать как 0x75 . В итоге мы получим программу, кушающую любые пароли, кроме эталонного.
С помощью Search → Find открываем окно и указываем в качестве типа для поиска Hex Bytes и направление. В поле ввода пишем нашу последовательность байтов: 85 C0 74 3C 68 . Есть совпадение! Теперь ставим курсор на 74 , нажимаем Delete и вписываем на этом месте 75 . Сохраняем результат и закрываем редактор. Проверь «пропатченное» приложение, оно теперь должно работать значительно лучше. 🙂
В целом я бы не сказал, что этот редактор отличается значительным удобством и соответствует нюансам работы благородного крекера. Поэтому отдавать за него 60 долларов кровных лично я бы не стал.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Юрий Язев
Широко известен под псевдонимом yurembo. Программист, разработчик видеоигр, независимый исследователь. Старый автор журнала «Хакер».
Exe file editor windows
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Asked by:
Question
Hello all,
here i am again asking complicated questions but if any expert or advanced user is seeing this thread please help me out with this simple task!
ok the thing is some programs i want to run(game and a game downloader) require admin priviledges to run ,in other words prompt me for credentials(that prompts only cause i have to change a group policy which says: elevate only on digital signed stuff otherwiser it wouldnt even prompt and just shows a server msg error), so i tried to change every permission as possible and even tried to add Everyone full control but no success,then i renamed the .exe file to .inf and opened in notepad and typed admin,luckly i found this :
version=»1.0.0.0″ so i presume that is the mechanism which prompt for credentials, and i believe if i change the values(which i dont know how i would just leave it blank by removing the requireadministrator in the quotas. but trying to save any value it makes the file 16bit(not allowed by the system) so i think its because i opened in notepad and it doesnt have options to save in 32bit format. PS: switching back to .exe without changin any values makes it go back to .exe 32bit normally thats why i thought it would be an editor issue. Will be looking forward for some Kind feedback! Try a file resource editor like «reshacker». The value to edit is 24 in the left hand tree. Hi HorsHack, Is this a developer tool, or is this something a general computer user would use? Both ways. Anyone can play with the file resources and learn a lot from it. Training for the initial use is almost not required at all. No programming skills required. What is the difference between the trial version and the full version? Your evaluation copy of Resource Tuner is a full-featured release. This means that the same capabilities available in the registered software are present in the non-registered software. This allows you to try out all the features in Resource Tuner to confirm that they work to your satisfaction. Will there be a version for 64-bit exe files in the future? Yes. We will come up with 64 bits in the version 2. Any plans to localize your software product in German and/or other languages? Yes. The version 2 will have the multilingual interface. Resource Tuner fails if I use it to examine itself. Is this intentional? Yes. It was our intent. I got an immediate error of something like «This file is likely damaged, packed or compressed». What can I do? Nothing. This is not viewed as a bug. We are not going to defeat the security attempts of other software authors. Resource Tuner unpacks only files compressed with UPX using the Plug-In subsystem. When I try to put my DLL back I get the following error: Can’t create new image file, the original file has been probably packed. Any hints? Please be advised that your dll might be really packed! Our software unpacks only files compressed with UPX. So if your dll was packed by any other third party packer, you have to unpack it before modifying. Otherwise the chances are you can’t create a new image file. What are packers? Packers are utilities that compress Windows portable executables (EXE, DLL, etc) significantly while leaving them 100% functional. Most of them encrypt data and resources and protect exe files from reverse engineering. I got an immediate error of something like «Incompatible» and «of type NE». What is a «NE» type file? Resource Tuner works with PE files only. A NE (or «New Executable») file is a 16-bit application intended to run on Windows® 3.xx. What is a PE file. I heard of them but thought my OS couldn’t run them? «PE» stands for «Portable Executable». The term «Portable Executable» was chosen because the intent was to have a common file format for all flavors of Windows, on all supported CPUs. A PE file is a 32 bit executable developed by Microsoft for NT (and Win95). The other notable executable types that run on MS platforms are «MZ» (DOS), «NE» and «LE» — but those formats are obsolete (but they will still run). Open an exe file in a hex editor or binary viewer and the first two values in the file will be ‘MZ’ — yes the DOS header is still there. Scan down 128 bytes and in most cases you should find the values ‘PE’ — this is where the PE format takes over. For greater detail download PE Explorer, our flagship product, and consult the help file. Not all PE files have the ‘exe’ extension. Other notable PE files have the extensions «dll», «scr», «sys», «cpl» and «ocx», and even «msstyles» featured in Windows XP. Also note that not all PE files will run on their own — dll’s for example. PE files that run on their own include exe, scr and cpl. Will the Resource Tuner work with NE and other 16-bit files? No. The NE format is obsolete. If Resource Tuner doesn’t work on NE type files, do you have a product that does? No. At any rate, knowledge of 16-bit format makes less sense especially since the 64-bit processors have hit the market. If I open an executable with Resource Tuner and then go to SaveAs and save the executable under a different name WITHOUT making ANY changes to it, and then I compare the two files with a hex editor, there are MANY changes to the file. Why are there changes even though I didn’t make any? Resource Tuner provides two functions that are automatically performed when opening a file: unpacking files compressed with UPX using the Plug-In subsystem, and error checking. If your target file was packed with UPX, it was unpacked automatically and saved unpacked. Resource Tuner does not re-pack the previously packed files. That is why the original file size is increased. Check out the logfile for details. The next thing Resource Tuner does is re-compiling the file resources according to the MS PE File Specification. That may also be the reason why the original file size is changed after a simple «Save as. » operation. If you don’t want any changes to be made, just do not save. Why does Resource Tuner tell me that the icons I have selected to replace do not have the same size and the same bits and color depth? Can you fix it? This is not a program error. When replacing icons, you must make certain that the replacement sources are the same size and have the same number of colors as the item to be replaced (e.g. a 16×16 4-bit icon can not be replaced with a 32×32 8-bit icon). Why? Because there are more than just one icon inside an EXE, even though they all may look the same. For example, this is how the Icon Group from our beloved Notepad looks like: Each Icon Group can contain multiple icon images, each with a different size and/or color depth. Common sizes include 16, 32, and 48 pixels square, color depths include 32-bit (24-bit with 8-bit alpha channel), 8-bit (256 colors) and 4-bit (16 colors). When Windows prepares to display an icon, a desktop shortcut for example, it chooses an icon from the Icon Group based on specific criteria. Carelessly swapping out the icon sizes may result in The Big Icon Mess: when you mess with icons they cease to be right icons. I can’t copy and paste icons from any file, including .exe and .dll files. Any ideas? The clipboard does not support copying/pasting .ico files. They look like graphic images but have their own format. To extact icons, use Save to disk. To replace icons, use Open the source file from disk instead Paste from the clipboard. Resource Tuner displays all the text as «. » Am I overlooking something? Ensure that your global Windows locale is set to a locale that supports the language you need. Otherwise, if you save the file while running as the locale English (US), all the foreign characters will be converted to . Is there a possibility to change the Windows Vista Start Up Video? The start up Vista video is a series of PNG images which are embedded in \System32\authui.dll file. Just open this file in Resource Tuner, extract the images, edit them, or replace the PNG images with your own PNGs, and you are done. What about a command-line version? We offer Resource Tuner Console, a script driven command-line version of the resource editor. This command-line tool for editing resources in Windows 32- and 64-bit EXE and DLL files combines a robust resource editor with intelligent script capabilities and full Unicode support. How can I write my own custom plug-in for Resource Tuner? Download Resource Tuner and consult the help for the plug-in API: you can write your own custom start-up processing plug-ins for crypted files handling and unpacking the packed files. so does it work as a solution as well? taking advantage of ur kindness,what should i replace for RequireAdministrator value? if its numerical just like an Hexa editor ,what are the values to be changed? Thanks again and appreciate ur help !
processorArchitecture=»*»
name=»Pando Media Booster Downloader»
type=»win32″/>
Pando Media Booster Downlaoder
Question is(are) : how can i save that in 32bit format? what values should i replace to make it stop prompting? does it have anything to do with the prompt for credentials? leaving it black works?
Thanks in advance,
RRAll replies
Suggestine nick name lol 😀
thanks alot for the input dude,i was reading some stuff about it which is this:General Questions
File Open
File Save
Resource Editor
Command Line
Plug-ins
will be looking forward for replies
Kind regards,
RR