Сейчас на форуме: morgot, sashalogout, -Sanchez- (+4 невидимых) |
eXeL@B —› Софт, инструменты —› CRACKER. Реализация для WIN32. GUI. |
<< . 1 . 2 . 3 . 4 . |
Посл.ответ | Сообщение |
|
Создано: 09 ноября 2015 03:27 · Поправил: dosprog · Личное сообщение · #1 ============================== CRACKER. Реализация для WIN32 GUI ============================== Наверное, нет нужды рассказывать, что такое крякеры. Вкратце, это двоичные патчеры, работающие в ручном режиме и берущие информацию о патчах в текстовых файлах .CRK (в простейшем случае CRK, позже появились всевозможные "расширения", зачастую неоправданные). Эти файлы - и есть кряки. Самая старая и заслуженная из этого класса программ датируется ещё 1991 годом, от Corner Crackers (CRACKER.EXE v.1.1). Позже, в 90-х, появилось ещё несколько аналогичных программ, из которых самая, пожалуй, удачная реализация выполнена Professor'ом Nimnull'ом в 1996 году и назывется она Cracker Advanced (CRA.EXE v.0.2.16 и CRA386.EXE v.0.2.14 с PMODE/W) (CRA386 v.2.16 под WinXP глючит). Вот полный их список, все для DOS (по ссылкам архивы с этими программами): ------------------------------------------------------------------------------------------------------ 1) 2) 3) 4) 5) ------------------------------------------------------------------------------------- Так что тема в 90-х была достаточно разработанная. До какого-то момента этих программ было вполне достаточно, но время вносит свои коррективы, и все имеющиеся реализации подобного софта (их можно насчитать пять штук, все для DOS) перестали отвечать запросам. Как такое можно терпеть? - Никак. Это невыносимо. Недостатки этих реализаций прошлого века вытекают из их DOS-овости. (Здесь CRA386, пожалуй, выглядит более достойно, но от остальных он принципиально ушёл недалеко). Недостатки такие: - ограничения оперативной памяти (кроме CRA386); - невозможность работы с длинными именами файлов (LFN) в WIN32; - невозможность работы в 64-битных ОС. А между тем, формат CRK вполне себя оправдывает и поныне для хранения информации о внесённых в двоичные файлы изменениях и исправлениях. Поэтому от самой идеи программ-крякеров отказываться вряд ли придётся. Ну, и к собственно сабжу. ====================================== ====================================== Интерфейс воспроизводит наиболее удачные образцы таких программ прошлого века - минимум лишнего. (В листбоксе виден фрагмент каталога файлов популярной Крякер занимается только разбором текста кряков, который составлен руками в желаемом виде, но с соблюдением некоторых "соглашений" вроде синтаксиса комментариев. Сами кряки (файлы .CRK) составляются ручками, можно с использованием какого-либо другого инструмента. ============================================== Краткое описание возможностей этой программы: ============================================== - Работает с форматами CRK,CRA,XCK (дань традициям). - Поддерживаются комментарии в стиле Cracker Advanced ('#' в начале строки), однако его опции #SIZE, #CHCKSUM, #RUN и т.д. игнорируются за явной ненадобностью. - Поддерживается корректное использование кириллицы в кодировках DOS/WIN (можно выбрать), (Кстати, все опции программы видны, если отволочь правую границу диалогового окна вправо). Вот они, опции программы: - LFN для кряков и имён исправляемых файлов (как и положено в WIN32). - Смещения для патчения в файле CRK могут задаваться либо традиционно, в виде абсолютных величин, либо в виде VirtualAddress (VA), как для WIN32 PE-файлов. Тогда перед адресом нужно указывать точку, например, вот так: .00401005 72 EB (Это вообще возможность, отсутствующая в программах-аналогах для DOS'а. Расширение синтаксиса CRK). В версии 0.002a добавилась возможность для WIN32-PE файлов адреса указывать также и в формате Relative Virtual Address (RVA) , тогда перед адресом нужно задать две точки, как в выводе утилиты CMP32.EXE v.0.002a, например, так: ..0001005 72 EB - и кстати - тут сразу возникает (--Добавлено--: Наподобие того, как это делает представленная в следующем посте утилита - Имеются расширения синтаксиса CRK - "CHECK" и "FORCE". Например: Code:
- Имеется опция "Patch All", когда все кряки, описанные в выбранном CRK-файле, применяются одновременно. - Вызов редакторов DOS/WIN для редактирования текста кряков, не выходя из программы (пути к редакторам настраиваются). (Для DOS-овского редактора можно применять LFN или SFN, на выбор.) По умолчанию это "edit"(+SFN) и "notepad". - Корректная работа как в WinXP, так и в Win9x. (Без этого никак. Win9x никуда не делась). - Два размера диалогового окна - компактный (size 1) для режима 640x480 и более просторный (size 2) для высокого разрешения экрана. - Программа эргономична. Например, фокус ввода c любого из контролов переводится на главный список кряков нажатием клавиши <Esc>. Все опции помимо стандартных контролов продублированы ещё и горячими клавишами, так что можно (и даже удобнее) работать без использования мыша. Справку по "горячим" клавишам можно подглядеть по нажатии кнопки F1: - Тут можно ещё что-нибудь написать, довольно обильно, - но лучше привести примеры текста CRK, с которым может работать эта программа. Например, так: Code:
По мере разбора текста, если встречаются ошибки, то выдаётся номер соответствующей строки. Где вышел затык. В крякере при чтении этого всего увидим такую картинку (кстати, выбран размер окна "Size 2"): Сколько кряков может присутствовать в одном файле? - не знаю. И никто не знает. Но много, и разного размера. Память под них выделяется динамически. Надо пробовать. В случае чего программа скажет "memory allocation error.." и позорно завершится. Однако, со всеми старыми, существующими ранее, файлами *.CRK, *.CRA, *.XCK программа должна работать без проблем. ) Ругань можно оставлять здесь в теме, лишь бы по делу - багрепорты приветствуются. *** См.также: *** Ссылка на пост #02 этой темы, об утилите Ссылка на пост #27 этой темы, о HEM-модуле | Сообщение посчитали полезным: elch, ProstoAndreyX, wzhick, zNob, vnekrilov, GMAP, ==DJ==[ZLO] |
|
Создано: 11 декабря 2017 03:01 · Поправил: dosprog · Личное сообщение · #2 plutos пишет: Вы имеете в виду gsar (General Search And Replace) is a utility for searching for and --- optionally --- replacing strings in both text and binary files? Да, |
|
Создано: 11 декабря 2017 04:40 · Личное сообщение · #3 dosprog пишет: Вон будет следующий турнир по крякерскому софту, предлагаю запелить замену крякеру. И чтобы там было всё как надо, по-взрослому. Легко. Только готов ты удалить свой аккаунт с exelab, надменный мой друг? Давай, я пишу аналог этой бесспорно грандиозной и титанической разработки, могу даже добавить компаратор файлов с ассемблером для удобства использования, ну и так банально будет честнее. Подходит такой челлендж? |
|
Создано: 11 декабря 2017 07:55 · Личное сообщение · #4 Имхо тут как минимум половина постояльцев может без труда это сделать... просто всем лень заморачиваться, инструментов рабочих итак полно, под конкретику у всех свои тулзы прямо из сырков работают. Поэтому это "челлендж" как бы с большой натяжкой С другой же стороны любой годный %another patcher% (да еще и с обещанным Первым поставлю | Сообщение посчитали полезным: shellstorm |
|
Создано: 11 декабря 2017 10:33 · Поправил: dosprog · Личное сообщение · #5 VOLKOFF пишет: Имхо тут как минимум половина постояльцев может без труда это сделать... ) Да. И для меня загадка, почему пришлось такое пилять самому. Вещь примитивная до безобразия. Но удобная. --Добавлено-- Кстати, насчёт могут без труда. Я вон тоже много чего могу, без труда. Но не делаю почему-то. Выходит, с этим не всё так просто. Пока глубже не думал на эту тему, лень. .. вон тут выше в теме HEM-плагин ( зачем его пилил, - я им не пользуюсь, хотя он и работает, нормально. [И, по некоторым признакам, более популярен, нежели сам CRACKER.] --Добавлено-- Впрочем, не пользуюсь это пока. Плагин обладает тем достоинством, что корректно создаёт кряки с VA для PE x64 программ. Правда, CRACKER с такими x64 адресами пока не работает. TODO. --Конец добавленного-- Просто тогда так совпало, выдалось чуток свободного времени и подвернулось настроение поворошить тему хьюшечных плагинов. Наверное, так же и у других. Должно совпасть несколько несвязанных между собой факторов. Совпадает редко и не у всех. А у других бывает всё совпадает, но нихуя ничо не выходит. Такое тоже случается. И тогда они начинают спамить в чужие темы про машыны фон Неймана и про .. В общем, судьба играет человеком, а человек играет на трубе. --Конец добавленного-- VOLKOFF пишет: просто всем лень заморачиваться Согласен. Знаю такое. ) Но нужно себя заставить. VOLKOFF пишет: С другой же стороны любой годный %another patcher% (да еще и с обещанным блекджеком CmpDisasm) не будет лишним, пилите sh...ура, пилите! Первым поставлю )) Я ж говорю - тоже гляну с нескрываемым интересом. Но. [см.выше --Добавлено-- ] В общем, ждём. Но есть нехорошие подозрения. --Добавлено2 -- Перезалит архив в стартпосте - CRACKER версия 0.002b (07.01.2018). Добавлена опция "Always on top" и отображение списка опций по <Alt+Up / Down>. Чтоб удобней было обходиться совсем без мыши. Также добавлена опция изменения прозрачности окна, а-ля Vitrite (Эта функция будет иметь эффект только в WinXP+). Словом, утилита приобрела [немного безобразный, но] вполне законченный вид. Полезные замечания по поводу использования: Удобно вызывать CRACKER как из командной строки оболочки вроде FAR'а так и настроить эксплорер на вызов CRACKER'а по тычку на файле CRK. (тогда подставляется текущий каталог в качестве рабочего, "WRK"), А каталог кряков ("CRK") можно быстро сделать текущим с помощью <Alt+F3>. Если же запускать CRACKER тычком по его иконке, тогда и "WRK" и "CRK" каталоги слизываются сохранённые в реестре (последние использованные). Так сделано, чтобы приходилось меньше шарить в виндовом диалоге GetOpenFileName. Оно практически и не приходится, - хотя такая возможность тоже имеется. --Добавлено3 -- Перезалита утиль - добавлен возврат DOS ERRORLEVEL для возможности вызова из пакетных файлов. На основании результата сравнения (файл[ы]найдены/не найдены, одинаковы/различны) можно организовывть ветвления в пакетных файлах (.BAT, .CMD). Для чего такое может понадобиться - см. например тут: и тут: --Добавлено4-- Перезалита утиль Поправлена реакция на сравнение x64 PE-EXE с опцией "/v" - выдавались неверные адреса. - Эта версия работает только с VA/RVA для 32-битных PE-EXE файлов. Кое-что ещё поправлено, по мелочам. TODO: Сейчас сравниваемые файлы могут иметь размер до 4 Гб. Теоретически, это нужно тоже исправить. Ну, и добавить работу с x64 PE. Это понадобится. |
|
Создано: 06 мая 2018 18:09 · Поправил: dosprog · Личное сообщение · #6 Мелкое улучшение: В CRACKER добавлено корректное сворачивание в Windows TaskBar. Перезалита версия Получилось очень нормально. | Сообщение посчитали полезным: SDK |
|
Создано: 26 мая 2018 17:44 · Поправил: dosprog · Личное сообщение · #7 Обнаружился странный глюк в CMP32.EXE при запуске её из командной строки FAR-менеджера(x64) в Win7(x64). Похоже, по GetCommandLineA() она получает (от FAR'а?..) какую-то некорректную строку. И тут трудно сказать, что это глюк в CMP32.EXE, похоже на проблему с FAR'ом. При этом из командной строчки TotalCommander'а программа работает как положено, без ошибок. --Добавлено-- Исправлено: |
|
Создано: 02 июня 2018 23:58 · Поправил: mysterio · Личное сообщение · #8 Неверно парсится командная строка, вот здесь: 00401294 E8 85010000 CALL CMP32.0040141E Парсишь до пробела. В следствии чего, имея такой путь "C:\1\Plug ings\cmp32.exe file1.exe file2.exe", cmp32 пытается открыть "ings\cmp32.exe" как первый параметр. Но что интересно, если все это сделать не в фаре, а в cmd, все отлично работает. Ошибка возникает когда cmp32 лежит в каталоге с пробелом в имени. Надо фиксить cmp32 upd: Проделай эксперимент: создай путь "C:\1\Plug ings", затем находясь в cmd в C:\1 выполни: "C:\1\Plug ings\cmp32.exe" file1.exe file2.exe или "..\Plug ins\CMP32.EXE" file1.exe file2.exe Получишь туже ошибку что и в фаре. В предыдущем случае для cmd просто повезло, что выполнение шло в текущем каталоге т.е. в "C:\1\Plug ings" командой "CMP32.EXE file1.exe file2.exe". ----- Don_t hate the cracker - hate the code. | Сообщение посчитали полезным: dosprog |
|
Создано: 03 июня 2018 00:52 · Поправил: dosprog · Личное сообщение · #9 mysterio пишет: Но что интересно если все это проделать не в фаре, а в cmd, все отлично работает. Вот именно. Так же и в TotalCommander'е - работает нормально. Пока не знаю как с этим быть. Столкнулся с такой же проблемой под Win7x64 (см.предыдущий пост), - (На нормальной системе не могу воспроизвести эту ошибку) - дело в том, что если имя/путь LFN, то оно должно быть в "кавычках". Подозреваю, что FAR тулит параметры LFN без этих самых "кавычек". А в CMP32 встреченная первая кавычка переводит парсер строки в режим LFN, когда допустимы пробелы. Если же кавычек нет, то действуют правила SFN, когда пробелы являются разделителями. То есть, как сейчас, в CMP32 парсинг организован строго по фэншую, всё нормально работает в CMD, TotalCommander'е и [даже] в VolkovCommander'е. Выходит, проблема с FAR'ом ?.. Вот под WinXP/SP2 x32 даю команду: Code:
Code:
Причём так это работает под WinXP/SP2 x32 и в FAR'e, и в VolkovCommander'e и вообще по-всякому. --Добавлено-- ..А впрочем.. Надо посмотреть,, --Добавлено сёдня же-- mysterio пишет: или "..\Plug ins\CMP32.EXE" file1.exe file2.exe Получишь туже ошибку что и в фаре. Только через CMD /C. И в этом случае глючит что-то уже в самом CMD.EXE, программа cmp32.exe просто не запускается, потому что не найдена. В общем, мрак. Но "ошибка" в CMP32.EXE поправлена, в сторону уточнения разбора имени программы. Спасибо за наводку. Добавлено спустя 8 часов 40 минут ************************************************ Исправлен баг разбора командной строчки в CMP32.EXE. Перезалита версия ************************************************ --Добавлено-- )) Не стесняемся слать багрепорты. Их, багов, просто не может не быть. Ни теоретически, ни практически. |
<< . 1 . 2 . 3 . 4 . |
eXeL@B —› Софт, инструменты —› CRACKER. Реализация для WIN32. GUI. |