ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Проверьте, пожалуйста, патч для Оперы
  #1  
Старый 20.10.2009, 15:01
emmy
Новичок
Регистрация: 12.10.2009
Сообщений: 20
Провел на форуме:
14519

Репутация: 41
По умолчанию Проверьте, пожалуйста, патч для Оперы

Привет, вот в этом блоге некто под ником d.i.z. выложил патч для браузера Опера. Смысл патча - убрать предупреждение об использовании пользовательских скриптов (userjs) на странице. (Если так будет понятнее, то это аналог Greasemonkey в Firefox)

Предупреждение возникает только при включенной настройке "opera:config#User Prefs|User JavaScript on HTTPS" и только на страницах, работающих по безопасному протоколу (https).

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

Собственно вопрос в том, нет ли у него каких-нибудь побочных эффектов.

Ссылки:
Блог: http://my.opera.com/d.i.z./blog/2009/07/25/patch-for-user-scripts-activation-prompt
Архив: http://files.myopera.com/d.i.z./blog/opera-userjs_activation.zip

P.S.
Содержимое архива:
Код:
/patch_tools
  upx.exe
  perl510.dll
  perl.exe
patch_https_ujs_prompt.bat
patchscript_ujs.pl
Файлы из папки patch_tools проверены и полностью совпадают с оригинальными upx и perl.

patchscript_ujs.pl:
Код:
$OPERABIN = $ARGV[0];

if ( !$OPERABIN ) {
  print " - Missing file argument for perl script!\n";
  exit 1;
}

open(FILE,'<'.$OPERABIN) or die " - Error opening file $OPERABIN for reading!\n";
binmode FILE;

my($buf, $data, $n);
$err = 0;

# read content of binary file to buf
while ( ($n = read(FILE, $data, 100000) ) != 0 ) {
  $buf .= $data;
}

# perform regepx on buf
# see if maybe already patched
if ( $buf =~ m/\x8B.\x10\xC6\x40\x38\x01/ ) {
  print " - Seems like first part of the patch is already applied. NOT proceeding!\n";
  $err = 1;
}
elsif ( $buf =~ m/\x8B.\x10\x83\x78\x38\x00/ ) {
  # pattern found
  print " - First match found (https userjs approved patch)!\n";
  $buf =~ s/\x8B(.)\x10\x83\x78\x38\x00/\x8B$1\x10\xC6\x40\x38\x01/;
}

# there are multiple matches of replaced string in file so we can't check if already patched
if ( $buf =~ m/\xC7\x40\x08\x01\x00\x00\x00\x89.\x0C/ ) {
  # pattern found
  print " - Second match found (userjs object 'modified' flag)!\n";
  $buf =~ s/\xC7\x40\x08\x01\x00\x00\x00\x89(.)\x0C/\x89$1\x08\xc7\x40\x0c\x01\x00\x00\x00/;
}
else {
  print " - Second match couldn't be found. NOT proceeding!\n";
  $err = 1;
}


close(FILE);

# return error when no match found
if ( $err ) { exit 1; }

# create file with modified buf
open(FILE, ">".$OPERABIN) or die " - Error opening file ".$OPERABIN." for writing!\n";
binmode FILE;
print FILE $buf;
close(FILE);

patch_https_ujs_prompt.bat:
Код:
@echo OFF

set OPERABIN=opera.dll
set PERLPATCHFILE=patchscript_ujs.pl
set TOOLSDIR=patch_tools

echo Unpacking %OPERABIN%...
%TOOLSDIR%\upx -d %OPERABIN%

if exist temp_opera.dll del temp_opera.dll
copy %OPERABIN% temp_opera.dll

echo Patching...
%TOOLSDIR%\perl -W %PERLPATCHFILE% %OPERABIN%
if errorlevel 1 goto ERR

echo Opera patching completed successfully!
echo Your original Opera file is now '%OPERABIN%_%PERLPATCHFILE%'

:OK
echo Press any key to exit.
if exist %OPERABIN%_%PERLPATCHFILE% del %OPERABIN%_%PERLPATCHFILE%
move temp_opera.dll %OPERABIN%_%PERLPATCHFILE%
goto EOF

:ERR
echo Error! Press any key to exit.
del temp_opera.dll

:EOF
pause > nul

Последний раз редактировалось emmy; 20.10.2009 в 15:19..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шпаргалки для сертификатов по Битрикс Liar PHP, PERL, MySQL, JavaScript 7 30.05.2009 10:13
Начальный практикум в Code Igniter Kuzya Авторские статьи 9 20.02.2009 23:12
Редактирование содежимого прошивок для Самсунгов Digimortal Схемы и программы 3 28.02.2007 14:22
Программы для работы с железом. Часть 2 – материнские платы _GaLs_ Аппаратное обеспечение 0 19.11.2006 12:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ