eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: flaccidnacho
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Registry Patch - loader Analog
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 5 августа 2008 17:04 · Поправил: Johnson Finger New!
Цитата · Личное сообщение · #1

В общем, появилась необходимость в наличии такого инструмента, который бы патчил реестр. Казалось бы просто, но при это нужно чтобы он работал как бы в silent режиме, что-то вроде аналога loader-а, т.е. при его запуске, скажем, экспортируется в реестр ключ, но при этом никаких окошек пользователю не выводится, и лишний раз глаза не мозолятся, после патча реестра запускаем саму программу....
Есть ли у кого нибудь нечто подобное? Пробовал DUP, но там так просто это не сделаешь, обязательно выведется окно с предложением нажать кнопочку. А это уже изначально не подходит...Можно конечно подобное реализовать на cmd скриптах, но это уж слишком грубый вариант, хоть и действенный конечно. В общем, надеюсь на помощь.
(*кстати, если у кого завалялся Eagle patch Engine (вроде так называется), в общем, патчмейкер, сделанный одним из участников форума, с таким же ником (Eagle), но найти нигде не могу, если у кого есть, залейте куда нибудь, буду благодарен)....


Ранг: 95.2 (постоянный)
Статус: Участник

Создано: 5 августа 2008 17:22 New!
Цитата · Личное сообщение · #2

А в чем собстно проблема написать такой лоадер?
там кода строчек на 15 максимум.

Ранг: 55.7 (постоянный)
Статус: Участник

Создано: 5 августа 2008 17:25 · Поправил: Evol New!
Цитата · Личное сообщение · #3

Johnson Finger пишет:
Пробовал DUP, но там так просто это не сделаешь, обязательно выведется окно с предложением нажать кнопочку.

ну если ним создавать действительно лоадер а не патч то не будет никаких окошек. например для лоадера можно сделать замену байта на тот же самый. не очень правильно но зато просто


Ранг: 748.2 (! !)
Статус: Участник
bytecode!

Создано: 5 августа 2008 17:36 New!
Цитата · Личное сообщение · #4

Johnson Finger
Эээ, и вправду, что мешает накодить то что надо?
Там правда делов-то...


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 5 августа 2008 17:43 New!
Цитата · Личное сообщение · #5

Я не кодер, в этом весь гимор.... Ломать ломаю, кодить не умею... И это задница.... на ВБ когда то что-то пробовал, но забросил, так что камнями не кидать....
Evol - была такая мысль, но это не айс, так делать, хотелось бы боле менее универсальное решение....

Ранг: 25.0 (посетитель)
Статус: Участник

Создано: 5 августа 2008 17:48 New!
Цитата · Личное сообщение · #6

patkov-site.narod.ru/programs.html


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 5 августа 2008 17:57 New!
Цитата · Личное сообщение · #7

RaiN - не айс ))) Он не умеет работать нормально с реестром, т.е. сначала идет экспорт из написанного кряка в reg файл на винт, и только потом запускается этот reg файл и патчится реестр. Ягораздо проще уже реализовал через cmd файл, тот ничего не создает, напрямую редактирует реестр, но окно все-таки есть, поэтому ищу альтернативный способ...


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 5 августа 2008 19:02 · Поправил: OLEGator New!
Цитата · Личное сообщение · #8

Johnson Finger Autoit тебе в помощь.
hxxp://www.autoitscript.com/autoit3/
hxxp://forum.ru-board.com/topic.cgi?forum=5&topic=17705&start=0
Я тоже не умею кодить, но в нём разобрался и мелкие проги на нём можно ваять.
всего одна строка кода: RegWrite ( "keyname", "valuename", "type", value )
всё компилится в EXE

Давай задачу могу тебе для наглядности пример наваять сразу.


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 5 августа 2008 19:13 New!
Цитата · Личное сообщение · #9

там что-то типа сайлент режима есть? Т.е. чтобы при запуске нигде не отображался, ни в трее, нигде? Т.е. почистил что надо в реестре, запустил программулю, и сам завершился....


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 5 августа 2008 19:20 · Поправил: OLEGator New!
Цитата · Личное сообщение · #10

Именно!
Вот тебе пример:

#NoTrayIcon ;прячим иконку в трее
;читаем текущие настройки реестра
$Read1 = RegRead ( "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control", "WaitToKillServiceTimeout" )
If $Read1 = "20000" Then ;если они дефолтные, то пишем наши данные
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control", "WaitToKillServiceTimeout", "REG_SZ", "3000")
EndIf
Run(@WindowsDir & "\NOTEPAD.EXE"); а после запускаем нашу программу


я на нём лоадеры пишу для сброса триала у шароварных программ
правда экзешник лошадиный получается 228 КБ с этого примера.

Ранг: 25.0 (посетитель)
Статус: Участник

Создано: 5 августа 2008 20:00 New!
Цитата · Личное сообщение · #11

Johnson Finger пишет:
RaiN - не айс ))) Он не умеет работать нормально с реестром, т.е. сначала идет экспорт из написанного кряка в reg файл на винт, и только потом запускается этот reg файл и патчится реестр.

а какая разница в конечном счете? можно создать .reg файл, запустить, удалить - все прозрачно, к тому же есть сайлент режим

Ранг: 16.9 (новичок)
Статус: Участник

Создано: 5 августа 2008 22:19 New!
Цитата · Личное сообщение · #12

Я вот для целей патчинга реестра пользовался или NSIS инсталлером или Inqsoft Sign 0f Misery. Второй так вообще для патчей и создавался имхо. Если в первом еще хоть немного надо кодить (скрипт, как-никак), так во втором все типа через мастера делается, без напряга. Но и для первого, помню, видел тулзу, которая переводила любой рег-файл в код скрипта. Сайлент режим, ессно, есть.


Ранг: 102.8 (ветеран)
Статус: Участник

Создано: 5 августа 2008 23:19 New!
Цитата · Личное сообщение · #13

Johnson Finger

Вот, нарисовал по-быстренькому. Надеюсь получилось то что тебе надо
Инструкция внутри.

{ Атач доступен только для участников форума } - autoreg.zip


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 6 августа 2008 10:09 New!
Цитата · Личное сообщение · #14

alexas
Я тоже раньше Inqsoft Sign 0f Misery юзал, нравилось, что ядро на асме и очень маленький файл получался, но у него очень большой недостаток: он не работает с переменными типа %windir% %temp%
Там приходится указывать абсолютные пути и из-за этого скрипт теряет универсальность. По этой причине я перешёл на AutoIt

ManHunter
програмулька прикольная, но Johnson'y Finger'y если быть точнее нужно функцию удаления ключей реестра, файлов и папок


Ранг: 172.2 (ветеран)
Статус: Участник

Создано: 6 августа 2008 10:26 New!
Цитата · Личное сообщение · #15

OLEGator пишет:
но у него очень большой недостаток: он не работает с переменными типа %windir% %temp%

из реестра есть возможность с4итать нужные пути


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 6 августа 2008 10:40 · Поправил: OLEGator New!
Цитата · Личное сообщение · #16

Ну на это у меня наверно ума не хватило. , если можно примерчик такого скрипта на S0M, который был определял например папку "мои документы" и потом создавал в ней и удалял какойнибудь файлик.


Ранг: 172.2 (ветеран)
Статус: Участник

Создано: 6 августа 2008 10:55 New!
Цитата · Личное сообщение · #17

ска4ал сом, щас расберемся


Ранг: 126.7 (ветеран)
Статус: Участник
#CCh

Создано: 6 августа 2008 10:58 New!
Цитата · Личное сообщение · #18

Угу.. HKLM\SYSTEN\CurrentControlSet\Control\SessionManager\Enviroment

Или GetEnviromentVariable.


Ранг: 172.2 (ветеран)
Статус: Участник

Создано: 6 августа 2008 11:10 New!
Цитата · Личное сообщение · #19

вот набросал скриптик(4итает путь моих документов и выводит в тайтл самого окна лоадера), вроде должен работать (только 4то-то с типом переменной накося4ил)

_s0m_script_part804C4D2E2E534F4654574152455C4D6963726F736F66745C57696E 646F77735C43757272656E7456657273696F6E5C4578706C6F7265725C5368656C6C20 466F6C646572735C004800000000506572736F6E616C00E3000000001328F730006514 00000001
(юзать правка-вставить в соме)


Ранг: 172.2 (ветеран)
Статус: Участник

Создано: 6 августа 2008 11:11 New!
Цитата · Личное сообщение · #20

Ice-T пишет:
Угу.. HKLM\SYSTEN\CurrentControlSet\Control\SessionManager\Enviroment

Или GetEnviromentVariable.


или HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ Shell Folders\

Ранг: 16.9 (новичок)
Статус: Участник

Создано: 6 августа 2008 11:14 New!
Цитата · Личное сообщение · #21

Так вот как раз у NSIS нету проблем с использованием переменных окружения, вплоть до таких экзотических, как $CDBURN_AREA (A directory where files awaiting to be burned to CD are stored). Кстати, скомпилированный NSIS скрипт получается очень даже небольшим.


Ранг: 126.7 (ветеран)
Статус: Участник
#CCh

Создано: 6 августа 2008 11:37 New!
Цитата · Личное сообщение · #22

/нефтему
Пореверсил GetEnviromentVariable, там ппц) Она помимо нужной переменной читает еще все остальные + имя компа, ОС, кол-во процессоров и т.д... прикольная функция

Ранг: 138.7 (ветеран)
Статус: Участник

Создано: 6 августа 2008 11:53 New!
Цитата · Личное сообщение · #23

Johnson Finger
Держи исходник на ассемблере. Скомпили со своими данными (путь к проге, ключи реестра и т.д.)

{ Атач доступен только для участников форума } - Registry_RUN_APP.asm


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 6 августа 2008 13:00 New!
Цитата · Личное сообщение · #24

ProTeuS чёта муть какаято получается у меня.
ну берём мы в переменную текст, но вот как из этой перпенной например вставлять в команду типа "запустить программу" в твоём варианте ты в команде "SetWindowText" пишешь "0" по идее это номер переменной, но при выполнении скрипта вместо текста из переменной пишется именно этот ноль.
версия: Sign 0f Misery 2.7 pre-release 2


Ранг: 172.2 (ветеран)
Статус: Участник

Создано: 6 августа 2008 13:12 New!
Цитата · Личное сообщение · #25

да, я и написал 4то не успел разобрался как там корректно изменить тип переменной в строку. а сам код 4тения из реестра отрабатывает-видно при отладке


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 6 августа 2008 13:18 · Поправил: OLEGator New!
Цитата · Личное сообщение · #26

всё я разрулил. перед командой "SetWindowText" надо было вставить 2 команды:
"Пoдмeнить пapaмeтp знaчeниeм пepeмeннoй"
"Пpимeнить пoдмeну пapaмeтpoв к cлeдующeй кoмaндe"
Реально работает. Теперь совсем новый взгляд на S0M, новое дыхание.
26,6 КБ после UPX. вполне приемлемо.

Ранг: 16.9 (новичок)
Статус: Участник

Создано: 6 августа 2008 13:32 · Поправил: alexas New!
Цитата · Личное сообщение · #27

Вот присмотрелся сейчас и нашел в S0M такую команду
Раскрыть имена системных переменных в строковой переменной
<один параметр - номер переменной>
Эта команда позволяет раскрывать имена системных переменных в текстовых строках. Строка, находящаяся в переменной с указанным номером, будет "развернута" и после этого помещена в ту же самую переменную. Например, строка %systemroot%\file.txt будет развернута в строку C:\WINDOWS\file.txt.


А вот по поводу использования содержимого переменных в какой-нибудь команде S0M. Для этого используется следующая последовательность команд:
1) Подменить параметр значением переменной (первый параметр)
2) Подменить параметр значением переменной (второй параметр, если оно нужно)
3) Применить подмену параметров к следующей команде
4) Вызов команды, в которой будут использована подмененные параметры.
Однако...

--
Упс.Опоздал немного. Для сведения: NSIS-овский скрипт подобного назначения пожатый UPX будет порядка 20 кб.


Ранг: 207.4 (наставник)
Статус: Участник
Jeefo Recovery

Создано: 6 августа 2008 14:40 New!
Цитата · Личное сообщение · #28

Фух ))) не ожидал такой активной помощи, большущее спасибо ко всем Теперь разберемся немного
AutoIt поковырял, посмотрел, штука действительно очень хорошая, но размер, это конечно нечто, несколько строк кода, и это чудо весит около 200 кб в сжатом UPX-ом виде.... Универсальность это конечно хорошо, но такие жертвы, гм...
на счет S0M а даже не задумывался, честно говоря не помню чтобы там было нечто подобное стелз режима, т.е. без вывода окна, может мало ковырял....
Кстати, большое спасибо кто в личку отписался и предложил свою помощь и отдельное спасибо за исходники, буду тренироваться
ManHunter - за уже готовую программулю отдельное спасибо. действительно полезная вещица когда нужно сделать быстро, и не сильно заморачиваться
В общем, на сей момент боле менее универсального решения нет, или страдает размер, или функционал... Как нормальные варианты вижу только AutoIt (фенькс за наводку OLEGator-у), либо компиляция CMD скрипта в exe файл (опять же, CMD весит 1 кб скомпиленный в EXE весит уже около 100 r,((( Либо еще подкинутые варианты с исходниками. В общем будем еще думать, может будет еще какое нибудь интересное решение


Ранг: 233.1 (наставник)
Статус: Участник

Создано: 6 августа 2008 14:46 · Поправил: OLEGator New!
Цитата · Личное сообщение · #29

щас я ещё тебе сделаю на S0M тот же вариант все тежи действия будут в скрытом режиме но размер реально меньше.

--------
во, под твои данные экзешник + исходник _http://www.sendspace.com/file/fxqn1c
положить в папку с жертвой, если сам будеш компилить проверь опции:
Пpoeкт\Задать параметры скрипта\He пoкaзывaть oкнo cкpиптa (это чтоб невидимым быть)

Ранг: 16.9 (новичок)
Статус: Участник

Создано: 6 августа 2008 15:48 · Поправил: alexas New!
Цитата · Личное сообщение · #30

Johnson Finger, раз ты будешь еще думать, тогда вот тебе еще и скрипт для NSIS

; The name of the installer
Name "Regpatch"
;Icon "my_exe_icon.ico"

; Set to silent mode
SilentInstall silent

; The file to write
OutFile "regpatch.exe"

Section "patchwork"
; Registry patch
DeleteRegKey HKLM "SOFTWARE\Licenses"
DeleteRegKey HKLM "SOFTWARE\Classes\CLSID\{7991E62E-2EE3-32CC-A9BA-97F890BF78A2}"

; Delete an empty directory
SetShellVarContext all
RMDir $APPDATA\Temp

; Run file
Exec "ezcddax_.exe"
IfErrors 0 +2
MessageBox MB_ICONSTOP|MB_OK|MB_SETFOREGROUND "Can't run the ezcddax_.exe file!"
SectionEnd

В скомпиленном виде - 32 кб (будет немного зависеть от версии NSIS), после UPX - 21 кб.

--> NSIS <-- http://nsis.sourceforge.net/Main_Page

----
Исправил код в соответсвии с S0M-скриптом от OLEGator
. 1 . 2 . >>
 eXeL@B —› Основной форум —› Registry Patch - loader Analog

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS