Сейчас на форуме: morgot, sashalogout, -Sanchez- (+4 невидимых)

 eXeL@B —› Софт, инструменты —› CRACKER. Реализация для WIN32. GUI.
<< . 1 . 2 . 3 . 4 .
Посл.ответ Сообщение

Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 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) CRACKER.EXE v.1.1 (by Corner Crackers, 1991)
2) Program Cracker (by Dr.Stein's labs, 1993)
3) CRA v.0.2.16, CRA386.EXE v.0.2.14 (by Nimnull, 1996)
4) CRK (by Bolshun/Ivanov, 1996)
5) CRACK-STUDIO (by Turansoft, 1997)
-------------------------------------------------------------------------------------

Так что тема в 90-х была достаточно разработанная.

До какого-то момента этих программ было вполне достаточно, но время вносит свои коррективы, и все имеющиеся реализации подобного софта (их можно насчитать пять штук, все для DOS) перестали отвечать запросам. Как такое можно терпеть? - Никак. Это невыносимо.

Недостатки этих реализаций прошлого века вытекают из их DOS-овости. (Здесь CRA386, пожалуй, выглядит более достойно, но от остальных он принципиально ушёл недалеко).

Недостатки такие:
- ограничения оперативной памяти (кроме CRA386);
- невозможность работы с длинными именами файлов (LFN) в WIN32;
- невозможность работы в 64-битных ОС.

А между тем, формат CRK вполне себя оправдывает и поныне для хранения информации о внесённых в двоичные файлы изменениях и исправлениях. Поэтому от самой идеи программ-крякеров отказываться вряд ли придётся.


Ну, и к собственно сабжу.

======================================
--> Вот версия 0.002b CRACKER'а для WIN32. <-- (6 May 2018 г.) - Size: ~25 Kb, UPX'ed. MSVC.
======================================



Интерфейс воспроизводит наиболее удачные образцы таких программ прошлого века - минимум лишнего.
(В листбоксе виден фрагмент каталога файлов популярной библиотеки кряков от Corner Crackers, 1991).

Крякер занимается только разбором текста кряков, который составлен руками в желаемом виде,
но с соблюдением некоторых "соглашений" вроде синтаксиса комментариев.
Сами кряки (файлы .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


- и кстати - тут сразу возникает предложение к crc1 по добавлению в его CmpDisasm возможностей, касающихся сохранения различий в сравниваемых файлах в формате CRK, но с виртуальными адресами смещений патчения.
(--Добавлено--: Наподобие того, как это делает представленная в следующем посте утилита CMP32.EXE с опцией "/v" или "/a").

- Имеются расширения синтаксиса CRK - "CHECK" и "FORCE". Например:
Code:
  1. 00001234:  72 ??    ;;"CHECK" - проверка байта. Удобно применять для контроля нужной версии исправляемого файла.
  2. 00001235:  ?? 23    ;;"FORCE" - безусловная замена байта (Но. После этого распатчивание уже будет невозможно)

- Имеется опция "Patch All", когда все кряки, описанные в выбранном CRK-файле, применяются одновременно.

- Вызов редакторов DOS/WIN для редактирования текста кряков, не выходя из программы (пути к редакторам настраиваются).
(Для DOS-овского редактора можно применять LFN или SFN, на выбор.)
По умолчанию это "edit"(+SFN) и "notepad".

- Корректная работа как в WinXP, так и в Win9x. (Без этого никак. Win9x никуда не делась).

- Два размера диалогового окна - компактный (size 1) для режима 640x480 и более просторный (size 2) для высокого разрешения экрана.

- Программа эргономична. Например, фокус ввода c любого из контролов переводится на главный список кряков нажатием клавиши <Esc>.
Все опции помимо стандартных контролов продублированы ещё и горячими клавишами, так что можно (и даже удобнее) работать без использования мыша.

Справку по "горячим" клавишам можно подглядеть по нажатии кнопки F1:



- Тут можно ещё что-нибудь написать, довольно обильно, - но лучше привести примеры текста CRK, с которым может работать эта программа.
Например, так:

Code:
  1.  
  2.  
  3.       ;допускаются пустые строки
  4.  
  5. Исрправление ошибок в программе Прога.EXE v.1.2       ;можно комментировать, используя ';'
  6. #SIZE = 3333                     ;эти строки игнорируются,
  7. #CHKSUM = 32233223       ;совместимость с CRA286.EXE (даже вернее с C2U.EXE, но это уже другая тема)
  8. #RUN = UPX -d                 ; тоже
  9.       
  10. 1) Убрать наглое окно
  11. ;
  12. ; тут можно добавить ещё какое-нибудь описание исправления
  13. ; (Но символ ';' должен быть в первой позиции.)
  14. ;
  15. Прога.EXE   ;(распакованная)
  16. ;
  17. ; тоже можно добавить строки комментариев. Но символ ';' должен быть в первой позиции.
  18. ;
  19. 000000222:  cc 90
  20. ;
  21. ;
  22. Drv\Прога.DLL
  23. ; снова можно добавить строки комментариев. Но символ ';' должен быть в первой позиции.
  24. .00403С40:  72 EB            ; Virtual Address
  25.  
  26.  
  27.  
  28. 2) Ограничения времени работы
  29. Прога.EXE   ;(распакованная)
  30. .00402222:  72 EB            ; Virtual Address
  31. 000000333:  80 00            ; Абсолютное смещение в файле
  32. Drv\Прога.DLL  ;(распакованная)
  33. .00403С55:  73 EB            ; Virtual Address
- Ну и так далее.
По мере разбора текста, если встречаются ошибки, то выдаётся номер соответствующей строки. Где вышел затык.

В крякере при чтении этого всего увидим такую картинку (кстати, выбран размер окна "Size 2"):






Сколько кряков может присутствовать в одном файле? - не знаю. И никто не знает.
Но много, и разного размера. Память под них выделяется динамически. Надо пробовать.
В случае чего программа скажет "memory allocation error.." и позорно завершится.

Однако, со всеми старыми, существующими ранее, файлами *.CRK, *.CRA, *.XCK программа должна работать без проблем.

) Ругань можно оставлять здесь в теме, лишь бы по делу - багрепорты приветствуются.


*** См.также: ***

Ссылка на пост #02 этой темы, об утилите --> CMP32 <-- (для использования её совместно с CRACKER'ом).

Ссылка на пост #27 этой темы, о HEM-модуле --> CRACK.HEM <-- (для использования его совместно с CRACKER'ом).



| Сообщение посчитали полезным: elch, ProstoAndreyX, wzhick, zNob, vnekrilov, GMAP, ==DJ==[ZLO]

Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 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?

Да, её. В качестве примера. Дело сугубо власних уподобань [собственных предпочтений, типо].





Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 11 декабря 2017 04:40
· Личное сообщение · #3

dosprog пишет: Вон будет следующий турнир по крякерскому софту, предлагаю запелить замену крякеру.
И чтобы там было всё как надо, по-взрослому.


Легко. Только готов ты удалить свой аккаунт с exelab, надменный мой друг? Давай, я пишу аналог этой бесспорно грандиозной и титанической разработки, могу даже добавить компаратор файлов с ассемблером для удобства использования, ну и так банально будет честнее. Подходит такой челлендж?



Ранг: 173.8 (ветеран), 208thx
Активность: 0.120.36
Статус: Участник

Создано: 11 декабря 2017 07:55
· Личное сообщение · #4

Имхо тут как минимум половина постояльцев может без труда это сделать... просто всем лень заморачиваться, инструментов рабочих итак полно, под конкретику у всех свои тулзы прямо из сырков работают.
Поэтому это "челлендж" как бы с большой натяжкой
С другой же стороны любой годный %another patcher% (да еще и с обещанным блекджеком CmpDisasm) не будет лишним, пилите sh...ура, пилите!
Первым поставлю

| Сообщение посчитали полезным: shellstorm

Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 11 декабря 2017 10:33 · Поправил: dosprog
· Личное сообщение · #5

VOLKOFF пишет:
Имхо тут как минимум половина постояльцев может без труда это сделать...

) Да. И для меня загадка, почему пришлось такое пилять самому. Вещь примитивная до безобразия.

Но удобная.


--Добавлено--

Кстати, насчёт могут без труда.
Я вон тоже много чего могу, без труда. Но не делаю почему-то.
Выходит, с этим не всё так просто.

Пока глубже не думал на эту тему, лень.

.. вон тут выше в теме HEM-плагин (CRACK.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 --

Перезалита утиль --> CMP32.EXE <-- - версия 0.002b, 27 Jan 2018 -
- добавлен возврат DOS ERRORLEVEL для возможности вызова из пакетных файлов.
На основании результата сравнения (файл[ы]найдены/не найдены, одинаковы/различны)
можно организовывть ветвления в пакетных файлах (.BAT, .CMD).

Для чего такое может понадобиться - см. например
тут:
-----> CMD/BAT - [решено] Сравнение двух файлов>ветвление "fc" или "diff" <--
и тут:
-----> eXeL@B —› Софт, инструменты —› Inno Setup XDELTA Patch Maker <--



--Добавлено4--

Перезалита утиль --> CMP32.EXE <-- - версия 0.002b, 10 Feb 2018 -
Поправлена реакция на сравнение x64 PE-EXE с опцией "/v" - выдавались неверные адреса.
- Эта версия работает только с VA/RVA для 32-битных PE-EXE файлов.
Кое-что ещё поправлено, по мелочам.

TODO: Сейчас сравниваемые файлы могут иметь размер до 4 Гб. Теоретически, это нужно тоже исправить.
Ну, и добавить работу с x64 PE. Это понадобится.





Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 06 мая 2018 18:09 · Поправил: dosprog
· Личное сообщение · #6

Мелкое улучшение:
В CRACKER добавлено корректное сворачивание в Windows TaskBar.
Перезалита версия --> в стартпосте <-- (6 May 2018 г.).

Получилось очень нормально.



| Сообщение посчитали полезным: SDK

Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 26 мая 2018 17:44 · Поправил: dosprog
· Личное сообщение · #7

Обнаружился странный глюк в CMP32.EXE при запуске её из командной строки FAR-менеджера(x64) в Win7(x64).
Похоже, по GetCommandLineA() она получает (от FAR'а?..) какую-то некорректную строку.
И тут трудно сказать, что это глюк в CMP32.EXE, похоже на проблему с FAR'ом.
При этом из командной строчки TotalCommander'а программа работает как положено, без ошибок.

--Добавлено--
Исправлено: --> Link <--






Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 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

Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 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:
  1. cmp32 "C:\1\Plug Ins\1" "C:\1\Plug Ins\2" 
Получаю в результате, как и должно быть:
Code:
  1. Differences between "C:\1\Plug Ins\1" & "C:\1\Plug Ins\2"
  2. C:\1\Plug Ins\1
  3. 00000000: 31 32

Причём так это работает под 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.
Перезалита версия --> Тут <-- (03 June 2018)
************************************************



--Добавлено--
)) Не стесняемся слать багрепорты. Их, багов, просто не может не быть.
Ни теоретически, ни практически.




<< . 1 . 2 . 3 . 4 .
 eXeL@B —› Софт, инструменты —› CRACKER. Реализация для WIN32. GUI.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати