patch.exe

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 19 ноя 2008.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Ищу исходник утилиты, нужно чтоб в командной строке можно было передать адрес и дата-код на вход утилиты и она это вбила бы в бинарный некий целевой файл...
    То-есть patch.exe /offset 0000a320 /code "Hello BINARY" C:\MyDocs\notepad.exe
    В никсах есть какой-то patch, но я чесно говоря не знаю, что он делает и как он делает?
    Хотя если порт под win32 бывает, вернее если он вообще это умеет?
    Ищу fasm исходник/пример, потому что если на си, то я не знаю чем капилить, не будуж из-за этого
    VisualStudio ставить. Сам написать затрудняюсь... А может вообще такой тулс уже есть в природе?
    Хотя собрать всёж хотелось бы свой, ато как всегда целый комбайн предложат, нет чтоб попросче.
    help!
    ps надо именно утиль, а не одноразовый патч! чтоб stdinввод слушало и для бинарей обязательно!
    а может это какой нить hexeditor делает в комманд строке?
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    напиши свой
     
  4. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    censored
    не совсем то что просят =)))
     
  5. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Wikipedia, the free encyclopedia~
    "patch is a Unix program that updates text files according to instructions contained in a separate file"
    меня вот что обламало, что текст-файлы...
    я как-то sed-ом ещё пытался в бинарный код влезть, кажись работало, но при какой-то видимо ошибке, по консоли каракули поползли (=
    Но сед не подходит, так как он ищет, а надо только патчить где надо.
     
  6. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    nobodyzzz
    я в курсе, просто глумлюсь :)
     
  7. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Semiono
    Если *nix тоже подходит, чем плохо dd? У нее есть параметры bs, skip, seek и много других. Т.е. можно не только сектора, но и байты гонять. А в качестве if= задать терминальную линию или файл, с которого будет идти ввод.
     
  8. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Mika0x65
    Ну так в порте *nix утилит(http://unxutils.sourceforge.net) есть dd, так что и под вендой можно замутить =))
     
  9. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    может подойдет hpath?
    http://patkov-site.narod.ru/

    Код (Text):
    1. ====- Что это такое -========================================================
    2.  
    3.  Универсальный генератор патчей файлов / процессов на основе простых скриптов.
    4.  Может создавать как GUI патчи, так и лодеры, размер ~ 6 кб.
    5.  
    6.  ====- Язык скриптов -========================================================
    7.  
    8.  Язык  скриптов  довольно  прост:  указывается  команда, а затем ее аргументы,
    9.  через запятую. Все, что находится после символа ';' до конца строки считается
    10.  комментарием и игногрируется при компиляции.
    11.  
    12.    <команда> [аргумент,[...]] ; комментарий
    13.  
    14.  Строковые  константы  надо  заключать  в  "двойные кавычки", допускаются esc-
    15.  последовательности, т.е. '\' экранирует любой  последущий символ (в том числе
    16.  и самого себя), причем есть особые последовательности:
    17.  
    18.    \n  новая строка (0x0d,0x0a)
    19.    \t  горизонтальная табуляция
    20.  
    21.  Массив байт и адреса надо  представлять в шестнадцатиричном виде. У hex-строк
    22.  нельзя опускать  предстоящий ноль, т.е. они  должны состоять из четного числа
    23.  символов. Адрес может принимать значения от 0 до ffffffff. Десятичные числа -
    24.  от 0 до 2^31. А команды такие:
    25.  
    26.  silence
    27.    при указании этой команды не будет выводится GUI - патч выполнит всю работу
    28.    при запуске автоматически, втихоря. Полезна при создании лодеров.
    29.  
    30.  open "filename"
    31.    открывает файл <filename>. Если в качестве аргумента  указать '?', то будет
    32.    выведено диалоговое окно  выбора  файла. Файл автоматически закрывается при
    33.    открытии нового файла и выходе из патча.
    34.  
    35.  run "filename"
    36.    запускает программу <filename> (в замороженном состоянии). Если  в качестве
    37.    аргумента  указать '?', то  будет  выведено  диалоговое  окно выбора файла.
    38.    Процесс  выводится из замороженного состояния при запуске нового процесса и
    39.    выходе из патча.
    40.  
    41.  kill
    42.    завершает последний запущенный процесс.
    43.    
    44.  resume
    45.    выводит  последний запущенный процесс из замороженного состояния. При патче
    46.    запакованных / зашифрованных программ  рекомендуется  размораживать процесс
    47.    сразу после запуска.
    48.    
    49.  suspend
    50.    замораживает последний запущенный процесс.
    51.  
    52.  writef <address>, <bytes>
    53.    пишет в открытый файл по адресу <address> массив байт <bytes>.
    54.    
    55.  writep <address>, <bytes>
    56.    пишет  в запущенный процесс по адресу <address> массив байт <bytes>. Вместо
    57.    writep настоятельно рекомендуется использовать patchp.
    58.    
    59.  patchf <address>, <original>, <bytes>
    60.    сверяет у открытого  файла  по адресу <address>  байты  с  <original>, если
    61.    совпали, то пишет по тому же адресу массив байт <bytes>.
    62.    
    63.  patchp <address>, <original>, <bytes>
    64.    серяет  у запущенного процесса по адресу <address> байты с <original>, если
    65.    совпали, то пишет по тому же адресу массив байт <bytes>.
    66.    
    67.  snr <start-addr>, <end-addr>, <original>, <bytes>, <count>
    68.    ищет  в  открытом  файле, в диапазоне адресов от <start-addr> до <end-addr>
    69.    последовательности  байт  <original>  и  заменяет  их на <bytes>. Последний
    70.    аргумент  <count>  должен  быть десятичным числом и показывает максимальное
    71.    количество  замен,  '*' =  неограниченно.  Тот  же  символ '*' в  аргументе
    72.    <end-addr> означает конец файла. В массивах байт <original> и <bytes> можно
    73.    использовать  маски:  '??' заменяет любой байт. Например, чтобы заменить во
    74.    всем  файле  все последовательности байт 5E83C9??0A????90 (где '??' - любой
    75.    байт) на B41E??67??00, надо писать:
    76.    
    77.      snr 0,*,5E83C9??0A????90,B41E??67??00,*
    78.    
    79.  try <number>
    80.    устанавливает  для  patchp  число  попыток  сверить байты, прежде чем будет
    81.    выведено  сообщение  об  ошибке  на <number> раз. По умолчанию это значение
    82.    равно 5000. Для простых незапакованных программ можно установить даже 1, но
    83.    если  программа  запакована / зашифрована, то следует оставить как есть или
    84.    установить еще больше. Аргумент должен быть десятичным числом.
    85.    
    86.  wait <ms>
    87.    ждет <ms> миллисекунд.  Осуществляется посредством WinAPI функции Sleep, то
    88.    есть  фактически  система  просто  переключится  на другой поток с таким же
    89.    приоритетом  на  <ms> миллисекунд, причем даже если аргумент будет равен 0,
    90.    переключение  все  равно  произойдет. Подробнее смотри в MSDN. В общем, при
    91.    патче  запакованнах / зашифрованных  программ  можно установить после run и
    92.    resume команду wait 0. Аргумент должен быть десятичным числом.
    93.    
    94.  shell "string"
    95.    передает командную строку <string> оболочке (command.com/cmd.exe).
    96.    
    97.  backup <-|+|?>
    98.    включает (если аргумент равен '+'), выключает ('-') или выдает запрос ('?')
    99.    на создание резервной копии файла при его открытии. По умолчанию отключено.
    100.  
    101.  title "string"
    102.    устанавливает заголовок окна патча на <string>.  Только в GUI режиме (когда
    103.    не указана команда silence).
    104.    
    105.  header "string"
    106.    устанавливает надпись в верхней части окна патча на <string>.  Только в GUI
    107.    режиме.
    108.    
    109.  print "string"
    110.    печатает строку <string> в информационном поле патча. Только в GUI режиме.
    111.  
    112.  cls
    113.    очищает информационное поле патча. Только в GUI режиме.
    114.  
    115.  init ... endi
    116.    все  команды,  находяшиеся  внутри  этого блока будут выполнены сразу после
    117.    запуска  патча,  в  отличии от остальных команд, которые выполняется только
    118.    после  нажатия  пользователем  кнопки  "Patch". Сюда рекомендуется помещать
    119.    команды title, header и т.п. Блок должен находится в начале файла. Только в
    120.    GUI режиме.
     
  10. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Semiono:
    wasm.ru › Инструменты › Модификаторы › Подборка модификаторов

    Хотя, если crk.exe не подойдёт, чего уж там, пишите свой патчер ;)
     
  11. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    О! Большое спасибо! dd тоже заинтересовал, я сам даже не додумался, он ж с файлами тоже работает,
    хотя им можно раздел запросто снести ))) у меня как раз dd.exe порт всегда валяется в system32.
    А вот что я сам нашёл, rbach.priv.at/DumpHex/ но не успел толком потестить, хотя может это даже из другой оперы... но дамп там в консоли мне его понравился. )
    Кстати, а hiew ничего такого не поддерживает? всмысле управление батником?
     
  12. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    WinHEX поддерживает. и скрипты тоже.