Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как скрыть исходный код bat (http://forum.oszone.net/showthread.php?t=270901)

k0mar 29-10-2013 11:21 2243091

Как скрыть исходный код bat
 
Вот хотел спросить, можно сделать BAT'ник так, что бы его никто не мог просмотреть(имеется ввиду содержимое) в случаях, если в bat файле к примеру используется Логин и пароль администратора?

Iska 29-10-2013 12:09 2243124

Правильный ответ — никак. От слова «совсем».

ShaddyR 29-10-2013 12:53 2243161

Цитата:

Цитата Iska
Правильный ответ — никак. От слова «совсем». »

не совсем. ;)
>
k0mar, в качестве варианта - есть программы-конвертеры .bat в .exe, а последний можно (нужно) сжать любым сжимальщиком запускаемых файлов (можно с шифрованием)

Iska 29-10-2013 13:44 2243193

Цитата:

Цитата ShaddyR
не совсем. »

Поясните ;). Я лично полагаю, что никакая «конвертация», обфускация и «шифрование» пакетных файлов никак не препятствуют вскрытию исходного кода и получению компроментирующих систему данных.

sunnykey 29-10-2013 13:51 2243200

Цитата:

Цитата Iska
Поясните . Я лично полагаю, что никакая «конвертация», обфускация и «шифрование» пакетных файлов никак не препятствуют вскрытию исходного кода и получению компроментирующих систему данных. »

Как насчёт хранения хэша или зашифрованного пароля в сценарии (правда применимо к PoSh)?

Iska 29-10-2013 14:47 2243236

Цитата:

Цитата sunnykey
(правда применимо к PoSh)? »

Не могу сказать ничего определённого — детально не знаком.

Elven 29-10-2013 15:01 2243251

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

ShaddyR 30-10-2013 12:43 2243756

Цитата:

Цитата Iska
Я лично полагаю, что никакая «конвертация», обфускация и «шифрование» пакетных файлов никак не препятствуют вскрытию исходного кода и получению компроментирующих систему данных. »

зависит от требуемого уровня защищенности. Озвученное помогает не дать просмотреть. На остальное надо время и навыки: далеко не каждый знает, что было исходным кодом упакованного exe'шника и как его дебажить.

Nordek 30-10-2013 17:28 2244002

Цитата:

Цитата k0mar
что бы его никто не мог просмотреть »

Если посмотреть и не понять чего там написано. То можно так:

Код:

@set q=@set
%q% g12=y
%q% p21=o
%q% j15=8
%q% v76=%0
%q% w10=f
%q% l58="
%q% q17=t
%q% d35=4
%q% y14=j
%q% c4=m
%q% w30=2
%q% y25=v
%q% k2=a
%q% t5=3
%q% r11=c
%q% i29=6
%q% y23=d
%q% c31=q
%q% f22=b
%q% n7=s
%q% b13=7
%q% o19=x
%q% u1=i
%q% u68=%
%q% p34=1
%q% q28=0
%q% k8=e
%q% f26=h
%q% g32=p
%q% u16=w
%q% l40=%SystemRoot%
%q% n46=%Temp%
%q% n24=k
%q% r27=u
%q% u88=%1
%q% r18=5
%q% c0=l
%q% b20=r
%q% v6=n
%q% m3=z
%q% q9=9
%q% b33=g
@%k8%%r11%%f26%%p21% %p21%%w10%%w10%
%n7%%f26%%r27%%q17%%y23%%p21%%%v6% -%b20% -%q17% %p34% -%r11% %l58%%c0%%p21%%c0%%l58% -%w10% >%v6%%r27%%c0%


Iska 31-10-2013 00:33 2244295

ShaddyR, я склоняюсь к тому, что всё, что может быть вскрыто за разумное время — будет вскрыто. Тут лучше «перебдеть», чем «недобдеть». Плюс: как правило, на каждый худо-бедно известный конвертор или обфускатор давно есть даже не методика — готовая утилита для обратного процесса.

Цитата:

Цитата Nordek
Если посмотреть и не понять чего там написано. То можно так: »

Nordek, вот про это я и говорю: ложное впечатление защищённости. А в итоге — зияющая дыра в безопасности. Это всё равно что написать красными чернилами крупными буквами — «смотреть здесь».

NikolayHAOS 09-01-2015 19:04 2453847

А если цель просто скрыть содержание BAT файла от любопытных но неопытных глаз :-)
То есть цель не предотвратить прям доступ, а просто чтоб с наскока (через текстовой редактор например) нельзя было посмотреть содержимое файла.
Как сделать?

Iska 09-01-2015 19:44 2453872

NikolayHAOS, выбирайте: encrypt batch file - Поиск в Google. Но помните, что на каждый болт с хитрой левой резьбой….

NikolayHAOS 09-01-2015 23:46 2453977

Iska, Спасибо конечно, но чет все на буржуйском.
Тут наткнулся на идею создания SFX архива, запаролленного естественно, а внутри Bat файл с процедурой самоудаления.
Цитата:

Цитата Iska
Но помните, что на каждый болт с хитрой левой резьбой…. »

Задача проста как апельсин, нужно запретить возможность изменения Bat файла особенно нужна "защита от дурака" (то есть защита от банальной порчи).
Посему нечего серьезного городить не надо, главное чтоб случайно фигня какаянить не вышла
Задача Bat файла восстанавливать профиль мозиллы копируя его из одной папки в другую. Для интернет-класса в школе, потому как детишки любят после себя другому оставить нерабочий браузер, по удалять закладки изменить стартовую страницу и т.д.
Я даже подумывал с NTFS правами поиграться на запрет.

ShaddyR 10-01-2015 02:03 2453998

NikolayHAOS, сказать честно? Фигней страдаешь. Shadow Defender тебе в помощь.

Iska 10-01-2015 06:30 2454025

Цитата:

Цитата NikolayHAOS
но чет все на буржуйском. »

Отчего Вас это удивляет?

Цитата:

Цитата NikolayHAOS
Тут наткнулся на идею создания SFX архива, запаролленного естественно, а внутри Bat файл с процедурой самоудаления. »

Плохая идея.

Цитата:

Цитата NikolayHAOS
Задача проста как апельсин, нужно запретить возможность изменения Bat файла »

Права доступа к файлу.

Цитата:

Цитата NikolayHAOS
особенно нужна "защита от дурака" (то есть защита от банальной порчи). »

Права доступа к файлу.

Цитата:

Цитата NikolayHAOS
Для интернет-класса в школе, потому как детишки любят после себя другому оставить нерабочий браузер, по удалять закладки изменить стартовую страницу и т.д. »

Каждому — свой профиль. Второй вариант — Windows SteadyState для старых ОС или набор политик для новых ОС. Или, как написал коллега ShaddyR:
Цитата:

Цитата ShaddyR
Shadow Defender тебе в помощь. »

и аналогичные средства.

NikolayHAOS 10-01-2015 08:27 2454034

Цитата:

Цитата ShaddyR
Shadow Defender тебе в помощь.»

Ой спасибо, глянул описание в вики, походу это то что доктор прописал.
Надо побольше о ней почитать и поэкспериментировать.
Цитата:

Цитата ShaddyR
сказать честно? Фигней страдаешь.»

Дык все беды от незнания. Я не волшебник, а только учусь (с)

Цитата:

Цитата Iska
и аналогичные средства. »

А какие есть? Мобыть есть что то очень удобное и популярное?

Iska 10-01-2015 08:56 2454039

NikolayHAOS, не хочу советовать что-либо определённое, поскольку сам не пользовал.

mig73 10-01-2015 09:07 2454040

k0mar, Вот статейка на Oszone про Quick Batch File Compiler. Скорее всего \то, что вам нужно.

Nordek 10-01-2015 11:12 2454054

mig73, Пользователь k0mar от вас два месяца ждал ответа.
mig73, Не в тему! Обратите на название темы:
Цитата:

Цитата k0mar
Как скрыть исходный код bat »

Т.е Как скрыть исходный код bat, а не сам bat-файл.

Цитата:

Цитата mig73
Вот статейка на Oszone про »

Вариантов достаточно чтоб скрыть сам bat-файл.
Например: Advanced BAT to EXE Converter, Bat To Exe Converter.

Freddy1984 26-02-2016 10:54 2610444

Цитата:

Цитата Nordek
Вариантов достаточно чтоб скрыть сам bat-файл.
Например: Advanced BAT to EXE Converter, Bat To Exe Converter. »

это не варианты вообще :)
вот сюда: "C:\Users\user\AppData\Local\Temp" после запуска exe-шника, скомпилированного с помощью Bat To Exe Converter например, можно спокойно зайти и узреть голый батник :)
Ну а так да, батник конечно скрыт в exe-шнике.. ага))) и зашифрован там... а толку?? он же всё ж остаётся читабельным как бээ :)

Опиум 26-02-2016 13:48 2610497

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

NikolayHAOS 24-03-2016 10:14 2619216

Кстати задача (восстановление настроек мозиллы) решена простым восстановление файлов профиля при загрузке/перезагрузке системы.
Через планировщик заданий запуск bat-файла, со скрытым содержанием кода и выполнения, просто висит черное окошечко с надписью подождите.
Все гениальное просто. (с)

LEmiD 18-12-2017 06:01 2785096

Сам не силён в програмировании, да и проблемный кусок не понимаю как работает. Потомучто и решение это нашлось чудом, не на одном форуме не нагугливалось.

В общем надо запутать батник от чужих глаз. Есть одна длинная строчка в виде набора знаков, вот пусть она в куче себе подобных затеряется.
Цели шифровать нет, потомучто этот батник создаёт вполне очевидный файл где всё и так видно, так что в него просто никто не полезет. В общем то его и вовсе можно удалять после первого запуска.

Нагуглил такой обфускатор. Там 2 варианта одного и тогоже, уж по всякому я его изъездил, и расшифровщик. Причём расшифровывает он хорошо, но командная строка после такой обфускации понять не может.
Нашёл ещё такой. Проблемы все теже.

Первая проблема это метки
исходный код
Цитата:

goto метка
:метка
после обфускации
Цитата:

goto %каша+из+переменных%
:%каша+из+переменных%
система понимает только так
Цитата:

goto %каша+из+переменных%
:метка
метка не может быть переменной

Вторая проблема с переменной текущей папки
Проблема распутать %~d0%~p0
Как она работает я не знаю, но лучших решений нет.
Цитата:

echo > "%~d0%~p0file.txt"
отправляет файл в папку рядом с батником, причём даже если к батнику ведёт ярлык или рабочая папка другая.
Ну а получается фигня
код
Код:

@echo off
set tjqzzpgfhb=s
%tjqzzpgfhb%et tlpiwpyeum=e
%tjqzzpgfhb%%tlpiwpyeum%t xrnxrlekgw=t
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% dqyfmeuijj=a
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% ghlqqcobnc=b
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% kpjoiylgmw=c
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% dlzpsfkjko=d
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% rouwdrceoj=e
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% tfhggovysc=f
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% eyjmndevgu=g
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% rjvfjrsfpo=h
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% lxuujxvuji=i
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% hddwxbduxc=j
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% swfceqmslv=k
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% ehqwaezcvp=l
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% yvqlzjdqoi=m
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% blevdhwjsb=n
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% fubtvdtorv=o
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% rfmmrrhyap=p
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% mtmbqwknti=q
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% ojalttegxb=r
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% ssxjlpblwv=s
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% fdichdovfp=t
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% zrirhjsjyj=u
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% chvckglccc=v
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% gqtzccjhbw=w
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% zmjbnjikao=x
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% mpeixwzgej=y
%tjqzzpgfhb%%tlpiwpyeum%%xrnxrlekgw% pfrsbttzic=z

%rouwdrceoj%%kpjoiylgmw%%rjvfjrsfpo%%fubtvdtorv% > "%~%dlzpsfkjko%0%~%rfmmrrhyap%0%tfhggovysc%%lxuujxvuji%%ehqwaezcvp%%rouwdrceoj%.%fdichdovfp%%zmjbnjikao%%fdichdovfp%"

Цитата:

Следующее использование оператора пути при подстановке параметров
в пакетных файлах является недопустимым: %~%dlzpsfkjko%0%~%rfmmrrhyap%0%tfhggovysc%%lxuujxvuji%%ehqwaezcvp%%rouwdrceoj%.%fdichdovfp%%zmjbnjik ao%%fdichdovfp%"

Для просмотра списка допустимых форматов введите CALL /? или FOR /?
Ошибка в синтаксисе команды.
Кусок %~ просто подрисовывается перед переменной и система это не понимает
Цитата:

echo > "%~%dlzpsfkjko%0%~%rfmmrrhyap%0%tfhggovysc%"

Тут я даже не знаю
Цитата:

set c=2
set d=3
>>t echo x.x("""c:f"" f -a i:1 -b %c%.%d%"),0
результат
Цитата:

x.x("""c:f"" f -a i:1 -b 2.3"),0
код
Код:

@echo off
set foanbcizmq=s
%foanbcizmq%et evhprclgoa=e
%foanbcizmq%%evhprclgoa%t henyezctqj=t
%foanbcizmq%%evhprclgoa%%henyezctqj% yywpsjnhyx=a
%foanbcizmq%%evhprclgoa%%henyezctqj% smvesoqwrq=b
%foanbcizmq%%evhprclgoa%%henyezctqj% vcjovmjpvj=c
%foanbcizmq%%evhprclgoa%%henyezctqj% zlgmnihuud=d
%foanbcizmq%%evhprclgoa%%henyezctqj% shwnypgxsv=e
%foanbcizmq%%evhprclgoa%%henyezctqj% mvwcxujlmp=f
%foanbcizmq%%evhprclgoa%%henyezctqj% ibfemyrlaj=g
%foanbcizmq%%evhprclgoa%%henyezctqj% tuhktnajoc=h
%foanbcizmq%%evhprclgoa%%henyezctqj% ffseobntxw=i
%foanbcizmq%%evhprclgoa%%henyezctqj% atssohrirp=j
%foanbcizmq%%evhprclgoa%%henyezctqj% vzbvclyifk=k
%foanbcizmq%%evhprclgoa%%henyezctqj% gsdbjahguc=l
%foanbcizmq%%evhprclgoa%%henyezctqj% sdoufovqdw=m
%foanbcizmq%%evhprclgoa%%henyezctqj% nrojfuyewp=n
%foanbcizmq%%evhprclgoa%%henyezctqj% qhbtirsxai=o
%foanbcizmq%%evhprclgoa%%henyezctqj% uqzranpczd=p
%foanbcizmq%%evhprclgoa%%henyezctqj% gbkkwbcmiw=q
%foanbcizmq%%evhprclgoa%%henyezctqj% apkzvggbbq=r
%foanbcizmq%%evhprclgoa%%henyezctqj% dfxkzdzufj=s
%foanbcizmq%%evhprclgoa%%henyezctqj% hovhraxzed=t
%foanbcizmq%%evhprclgoa%%henyezctqj% tzgbnnkjnx=u
%foanbcizmq%%evhprclgoa%%henyezctqj% ongpmtnxhq=v
%foanbcizmq%%evhprclgoa%%henyezctqj% qdtapqhqlj=w
%foanbcizmq%%evhprclgoa%%henyezctqj% umqyhmevjd=x
%foanbcizmq%%evhprclgoa%%henyezctqj% nhgzstdyiv=y
%foanbcizmq%%evhprclgoa%%henyezctqj% blbgdgvtmq=z

%dfxkzdzufj%%shwnypgxsv%%hovhraxzed% %vcjovmjpvj%=2
%dfxkzdzufj%%shwnypgxsv%%hovhraxzed% %zlgmnihuud%=3
>>%hovhraxzed% %shwnypgxsv%%vcjovmjpvj%%tuhktnajoc%%qhbtirsxai% %umqyhmevjd%.%umqyhmevjd%("""%vcjovmjpvj%:%mvwcxujlmp%"" %mvwcxujlmp% -%yywpsjnhyx% %ffseobntxw%:1 -%smvesoqwrq% %%vcjovmjpvj%%.%%zlgmnihuud%%"),0


на выходе получаем хрень
Цитата:

x.x("""c:f"" f -a i:1 -b %vcjovmjpvj%.%zlgmnihuud%"),0

Я пытался втыкать переменные в чистом виде, 10 строк кучкой. Переписывать метки штуки 3.
Но вот на последнем я понял что после такого обфускатора, где половину чистого кода каждый раз втыкать надо, толку мало.

У меня лучше получилось сложить строки пирамидкой по длине и перелинковать метками, густота весьма плотненькая.

Встречал кто нормальные решения или может знает как написать батник чтоб эти баги не появлялись ?

alpap 19-12-2017 00:02 2785301

Код:

@echo off
:: Если вставлена флешка и на ней есть файл "file.txt", а в нем содержимое 3й строки совпадает с введенным паролем, то произойдет запуск файла, записанного в 5й строке
set "f=file.txt"
set/p n="Введите пароль: "
for /f "tokens=2 delims==" %%a in ('wmic logicaldisk where ^(drivetype^="2" and mediatype^=null^) get name /value^|find "="') do set "disk=%%a"
<"%disk:~,2%\%f%" (more +2|set/p x=^&cmd/v/c "if "!x!"=="%n%" <"%disk:~,2%\%f%" (more +4|set/p y=^&cmd/v/c echo:start "" "!y!")")
pause>nul


ShaddyR 19-12-2017 01:59 2785311

LEmiD, задавай запуск батника ярлыком с указанием чего-то в командной строке - одного или нескольких параметров. К ним обращайся изнутри через %1 и т.д. Неавторизованный запуск батника без оных параметров, равно как и парсинг без знания сути передаваемого будет бесполезным настолько, насколько у тебя хватит фантазии)

LEmiD 20-12-2017 14:14 2785788

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

В общем результат мне оказалось проще прочитать по подсветке, а вот для софта он оказался очень упоротым.
Первый расшифровщик его не понял.
N++ тоже не может поиском найти ничего в этой билибирде, может пора его обновить.

Явно видно только некоторые команды инициализации вроде set goto и меток.
Посмотрел это дело в первых обфускаторах, там это прячется между переменными которые не заданы, видимо для системы это пустая строка.
А вот с переменными у него лучше чем у явового, который портит их всех.
Не разбирался как сделано, но после раскодировки переменные путей превращаются в значения, возможно они заранее подменяются из set, у явового просто тройные проценты не понятные системе.

Может хоть с синтаксисом батников разберусь :)


Время: 00:37.

Время: 00:37.
© OSzone.net 2001-