|
Комментарии | #1 Автор: SergeCpp (2013.06.17 00:15) | Поправлю имя автора и поставлю его сайт. |
#2 Автор: Nika (2013.06.17 00:36) | Спасибо. |
#3 Автор: SergeCpp (2013.06.17 01:43) | Предупреждение: незарегистрированная версия 6.50 (её можно скачать на сайте программы, см. раздел "Информация" выше) записывает "свою метку" в редактируемый файл, причём в достаточно важное место: в поле Minor Image Version заголовка IMAGE_OPTIONAL_HEADER. Обычно в этом двухбайтовом поле находятся нули, программа же записывает 8F в младший байт и 05 — в старший байт этого поля. Совершенно недопустимое поведение для программы -- портить данные пользователя.
Ещё одна особенность версии 6.50: если файл настроек .ini установлен в Read-Only (чтобы защитить настройки от случайного изменения), то при попытке выхода из программы выводится окошко с ошибкой и выход из программы не производится.
Это обычная рабочая ошибка, исправить её достаточно просто:
1) 3bc9e: b8 01 00 00 00 ; устанавливаем признак успешности записи в .ini 2) 3bca3: eb 24 ; пропускаем следующий код (можно и 90 90 здесь написать, но тогда и (3) нужно делать) 3) 3bca5: 90 90 90 90 90 90 90 90 90 90 90 ; этого можно и не менять (код вывода окна с ошибкой)
Возможно и версия 5.00 ведёт себя таким же образом в обоих случаях.
|
#4 Автор: SergeCpp (2013.06.17 06:29) | У eXeScope есть одно очень, даже ОЧЕНЬ важное преимущество перед тем же Resource Hacker -- это минимальное воздействие на редактируемый файл.
Простой пример. Сделаем копию файла eXeScope.exe и проделаем следующее: откроем эту копию при помощи eXeScope и вставим-удалим символ из какой-либо строки в ресурсах. Потом запишем файл, сняв отметку у "Permit to change file size". Двоично сравним изначальный eXeScope.exe и эту отредактированную копию (например, командой fc /b) -- файлы идентичны.
Теперь проделаем это же, открыв копию при помощи Resource Hacker: вставим-удалим символ в строке-ресурсе, нажмём "Compile Script" и сохраним файл. Видно, что размер этой копии отличается от исходного файла. Двоичное сравнение показывает, что, кроме изменения размера, есть чуть меньше 75 тысяч отличий в байтах. Файл этот, конечно (?), правильный, однако -- СИЛЬНО ИЗМЕНЁННЫЙ.
"По мотивам" eXeScope можно легко определить, где именно делались изменения, и какие. "По мотивам" же Resource Hacker это определить намного сложнее. |
#5 Автор: Nika (2013.06.17 07:59) | 1) Версия 5.0 ведёт себя аналогично.
2) И 5.0 и 6.5 - просто глючат, поэтому не стал я с ними возиться. Попробуйте, например, изменить в строке в ресурсах один только символ и сохранить файл - новая строка запишется на место MZ-заголовка. Короче, программа паскудная. Я ею не пользуюсь. Выложил её только потому, что она упоминалась как альтернатива reshacker'у. |
#6 Автор: SergeCpp (2013.06.17 14:39) | Я eXeScope 6.5 и Resource Hacker 3.4.0.79 пользуюсь уже очень долго -- почти с даты их выхода (где-то они тогда описывались) -- обеими. Они даже у меня обе есть в меню SendTo (ссылки на них). Так и обнаружил то, что eXeScope пишет в номер версии, сравнением.
Я менял им (eXeScope) 16-разрядный USER.EXE (иконка эта невзрачная, что на кнопке Start -- именно там находится в Windows 9x) -- Win-иконки (там их несколько, разных размеров), курсор ("крестик" другой поставил) и ещё что-то. Все изменения проконтролировал сравнением -- поменялось именно то, что и предполагалось.
Сама же надпись Start находится уже в Explorer.exe, вот странности-то. Я на другой системе её поменял на " M e ", именно с такими пробелами, там как раз 5 символов.
Иконка оттуда во многих местах появляется, по Alt-Tab, например, для некоторых программ (или их окошек, что в AltTab-список "забираются") без своей иконки.
|
#7 Автор: SergeCpp (2013.06.17 14:43, изменений: 1, 2013.06.17 14:44) | Забирайте иконку: http://www.sendspace.com/file/sk5i9w я её сам нарисовал!
Там изображения нескольких размеров в иконке. |
#8 Автор: Nika (2013.06.17 14:51) | SergeCpp, http://www.sendspace.com/file/sk5i9w - пустая страница... |
#9 Автор: SergeCpp (2013.06.17 15:13) | У меня не пустая, я проверял-скачивал. Может, какой блокировщик рекламы у вас сработал.
http://upwap.ru/3181507
|
#10 Автор: Nika (2013.06.17 16:19) | Ок. Спасибо. |
#11 Автор: Nika (2018.07.07 00:46, изменений: 1, 2018.07.07 00:48) | >> SergeCpp (2013.06.17 01:43) пишет: >> Ещё одна особенность версии 6.50: если файл настроек .ini установлен в Read-Only (чтобы защитить настройки от случайного >> изменения), то при попытке выхода из программы выводится окошко с ошибкой и выход из программы не производится. >> Это обычная рабочая ошибка, исправить её достаточно просто: >> 1) 3bc9e: b8 01 00 00 00 ; устанавливаем признак успешности записи в .ini >> 2) 3bca3: eb 24 ; пропускаем следующий код (можно и 90 90 здесь написать, но тогда и (3) нужно делать) >> 3) 3bca5: 90 90 90 90 90 90 90 90 90 90 90 ; этого можно и не менять (код вывода окна с ошибкой)
Такие правки удобно описывать в формате CRK (и использовать потом CRACKER.EXE для патча\унпатча файла http://old-dos.ru/index.php?page=files&mode=files&do=show&id=5519 ) Пример такого CRK-файла для данного случая:
;;--------------------------------------------------->8 eXeScope 6.50 Особенность версии 6.50: если файл настроек .ini установлен в Read-Only (чтобы защитить настройки от случайного изменения), то при попытке выхода из программы выводится окошко с ошибкой и выход из программы не производится.
Fix INI-file bug exescope.exe .0043C89E: 85 B8 ;0003BC9E: ;(1) устанавливаем признак успешности записи в .ini .0043C89F: C0 01 ;0003BC9F: .0043C8A0: 75 00 ;0003BCA0: .0043C8A1: 27 00 ;0003BCA1: .0043C8A2: 8B 00 ;0003BCA2: exescope.exe .0043C8A3: 43 EB ;0003BCA3: ;(2) пропускаем следующий код (можно и 90 90 здесь написать, но тогда и (3) нужно делать) .0043C8A4: 04 24 ;0003BCA4: exescope.exe .0043C8A5: 89 90 ;0003BCA5: ;(3) этого можно и не менять (код вывода окна с ошибкой) .0043C8A6: 45 90 ;0003BCA6: .0043C8A7: F8 90 ;0003BCA7: .0043C8A8: C6 90 ;0003BCA8: .0043C8A9: 45 90 ;0003BCA9: .0043C8AA: FC 90 ;0003BCAA: .0043C8AB: 0B 90 ;0003BCAB: .0043C8AC: 8D 90 ;0003BCAC: .0043C8AD: 45 90 ;0003BCAD: .0043C8AE: F8 90 ;0003BCAE: .0043C8AF: 50 90 ;0003BCAF:
;;--------------------------------------------------->8 |
#12 Автор: SergeCpp (2018.07.07 08:05, изменений: 2, 2018.07.07 11:08) | Если б я для каждого изменения создавал такие файлы, я бы в них запутался (в смысле -- много изменений во множестве файлов). Relocations частенько убираю тоже. Bind тоже. Те же ресурсы в системных файлах (см. выше про иконку) -- некоторые программы при правке ресурсов много чего вокруг меняют (выше упоминал). Тем более, изменения при необходимости можно получить сравнением. Тем более далее, для сложных правок -- база Ida, где всё описано (TRW2000 как один из примеров, да и ME7).
P.S. Кстати, сам eXeScope позволяет создавать лог изменений и потом его применять (там есть отдельная программка для применения). Ток вот, за все эти 20 уж, поди, лет, я так ни разу такой лог даже не создал, чтоб посмотреть (сколь помню). |
#13 Автор: Nika (2018.07.07 15:34) | И тем не менее, выхода нет. Логи изменений приходится вести, иногда приходится и отматывать всё назад. CRK-формат оказался весьма удобен для этих целей. |
#14 Автор: SergeCpp (2018.07.07 16:20, изменений: 3, 2018.07.07 16:50) | Если совсем назад -- есть оригинал, а по-частично назад -- мне такое не пригождалось. Это же и для исходников (система контроля версий) -- я даже изначальную версию не храню. Вот, кстати, жаль, что не сохранилась у меня самая первая версия декомпилированного вручную medebug (то, что есть в сети -- это уже другой medebug, от версии J) -- и ведь хранил-держал её, каждый раз компилируя и сравнивая полученный mac с исходным. Потом даже отдельно заархивировал, когда стал вносить изменения, приведшие к отличиям в mac. А потом и совсем удалил... Вот зачем?.. Зря, жаль... Там какое-то тонкое отличие с версией J -- мы с вами на форуме некогда говорили об этом.
Сейчас-позже ещё лупу выложу, тоже 1999 программа и использутся мною с тех примерно лет и, наверное, чаще ВСЕХ ВООБЩЕ программ (если смотреть по количеству запусков в день). |
#15 Автор: Nika (2018.07.07 18:52, изменений: 1, 2018.07.07 19:08) | По medebug обсуждалась, помню, его работа в ME v.6. Там случайно удалось угадать различие в полях структуры и он заработал вполне нормально, будучи перенесенным из ME 7. |
#16 Автор: Oto (2019.08.09 01:00) | Vulnerability Details : CVE-2009-1063 Buffer overflow in eXeScope 6.50 allows user-assisted remote attackers to execute arbitrary code via a crafted executable (.exe) file. Publish Date : 2009-03-26 |
| |
|