Сейчас на форуме: rmn, exp50848 (+7 невидимых)

 eXeL@B —› Основной форум —› Ускорение таймеров в браузере
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 08 сентября 2011 22:02
· Личное сообщение · #1

Всем здрасте. Недавно захотел рещить одну распространённую проблему - проблему таймеров при ожидании ссылки для загрузки какого-либо файла. Т.е. (для людей не в теме) пытаетесь вы скачать с какого-то сервиса типа депозита, турбобита и многих других какой-то файл. Но перед началом загрузки выскакивает таймер, и приходится ждать 60 сек, а иногда и больше. Это ужасно раздражает. В инете видел множество скриптов по обходу этих таймеров, но меня интересует эта проблема, однако под другим ракурсом. Идея состоит в следующем. Так как ожидание выполняется браузером (браузер выполняет javascript, например), то от того, как это ожидание программно реализовано в браузере, зависит сколько на самом деле мы будем ждать. Т.е., к примеру, некий таймер по окончании интервала в 60 секунд вызывает TIMERPROC. Вполне реальный сценарий, по-моему. Так вот наша задача подправить реализацию этих вызовов, чтоб изменить интервал ожидания. Но! В теори всё кул, на практике перепробовал всё, что только можно:
SetTimer
KillTimer
ZwOpenTimer
ZwCreateTimer
ZwSetTimer
Sleep
SleepEx
ZwYieldExecution
RtlCreateTimer
RtlCreateTimerQueue
GetTickCount
CreateWaitableTimer
QueryPerformanceCounter
timeGetTime

И ничего!Таймеры Internet Explorer не опираются на них! Блин, как так? Сомневаюсь, что используется какой-то недокументированный хитрожопый способ, может, кто что посоветует?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 09 сентября 2011 00:46 · Поправил: Isaev
· Личное сообщение · #2

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

В частности тут: --> Link <-- Всё написано и поддерживается в актуальном состоянии (для некоторых обменников, где пасут эти скрипты и активно фиксят код, скрипты скрыты, можно спросить в личке у автора)
приятная вещь, облегчает жизнь. А по аналогии можно для нужного сервера дописать своё

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 20.4 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 09 сентября 2011 04:25 · Поправил: Skino
· Личное сообщение · #3

Isaev А для мазилы есть интересно такая же тема?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 09 сентября 2011 05:55
· Личное сообщение · #4

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

-----
Yann Tiersen best and do not fuck




Ранг: 7.7 (гость), 51thx
Активность: 0.010
Статус: Участник

Создано: 09 сентября 2011 09:34
· Личное сообщение · #5

Skino пишет:
А для мазилы есть интересно такая же тема?

для мозиллы есть дополнение SkipScreen




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 09 сентября 2011 10:19
· Личное сообщение · #6

Скрипты - это, конечно, прекрасно. Но вот проблема в том, что:

для некоторых обменников, где пасут эти скрипты...

А с API - паси, не паси - это будет работать. Единственная проблема, как сказал PE_Kill, это если время на сервере считается. Но тогда и скрипты не помогут. Поэтому сосредоточимся исключительно на сценарии, в котором отсчёт ведётся на стороне клиента.

А при хуке API, просто для "ускорения" всех таймеров, можно на свою задницу много лишнего словить

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

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 09 сентября 2011 10:45 · Поправил: Zorn
· Личное сообщение · #7

Да вы, батенька, решили муху атомной бомбой грохнуть

Если так хочется изврата - бери сорцы лисы например и смотри как обрабатывается setInterval и setTimeout в Javascript движке.



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 09 сентября 2011 11:18
· Личное сообщение · #8

firebug можно поюзать, посмотреть как таймеры в firefox'e работают




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 09 сентября 2011 16:29
· Личное сообщение · #9

ARCHANGEL есть программа USD она качает с шаропомоек. Чем не устраивает? Меня не устраивало то, что плагин для letitbit реально ждал таймер, который как раз работает только на стороне клиента, я его выбросил и написал за 10 минут свой, который уже ничего не ждет. А так действительно атомная бомба.

-----
Yann Tiersen best and do not fuck





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 09 сентября 2011 17:24
· Личное сообщение · #10

PE_Kill пишет:
есть программа USD она качает с шаропомоек.

Ещё не стоит обходить вниманием JDownloader

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 09 сентября 2011 17:48
· Личное сообщение · #11

PE_Kill
Можно сей плагинчик получить (или pesonal use only ;) ?

-----
Don_t hate the cracker - hate the code.





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 10 сентября 2011 01:12
· Личное сообщение · #12

мне кажеца вопрос не про то как скачать, а как бравзер считает время)
вроде все нужные апи перечислены, может ARCHANGEL ошибся в хуке?

-----
zzz





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 сентября 2011 01:21
· Личное сообщение · #13

zeppe1in пишет:
мне кажеца вопрос не про то как скачать, а как бравзер считает время)

Именно! +100! Я, видимо, весьма туманно выразился, но как раз этот аспект меня интересует.

вроде все нужные апи перечислены, может ARCHANGEL ошибся в хуке?

Ну, смотрите. Всё, вроде бы, просто. Я перехожу по ссылке, например, на депозите. Потом жму скачать файл, выбираю "бесплатно", но перед тем, как браузер выполнит переход на страницу с таймером, ставлю бряк на интересующую меня функцию. Если он (бряк) не срабатывает, значит и говорить не о чем. Если срабатывает по сто раз в секунду (много раз, иными словами), то я патчу функцию (например, GetTickCount всегда возвращала 0 у меня в тестах), но таймер работает, и ничего не меняется. Такими способами я протестил все функции в списке.

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 сентября 2011 04:34
· Личное сообщение · #14

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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 10 сентября 2011 07:27
· Личное сообщение · #15

На депозите разве не флеш-таймер?

-----
Yann Tiersen best and do not fuck





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 сентября 2011 08:45
· Личное сообщение · #16

PE_Kill пишет:
На депозите разве не флеш-таймер?


а надо посмотреть, мну там давно не был




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 сентября 2011 12:22 · Поправил: ARCHANGEL
· Личное сообщение · #17

PE_Kill
А если и флеш, то что это меняет? Вся флеша воспроизводится через флеш-плеер, который выполняется внутри браузера в своей отдельной DLL. Т.е. бряки в адресном пространстве должны бы срабатывать. По крайней мере, я так думаю, разве нет?

Добавлено
А, понятно

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 сентября 2011 13:05
· Личное сообщение · #18

ARCHANGEL, PE_Kill ответил на моё:

Gideon Vi пишет:
я что-то не припомню популярных сервизов, где время бы считалось у клиента.




Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 10 сентября 2011 14:41
· Личное сообщение · #19

ARCHANGEL пишет:
А если и флеш, то что это меняет? Вся флеша воспроизводится через флеш-плеер, который выполняется внутри браузера в своей отдельной DLL. Т.е. бряки в адресном пространстве должны бы срабатывать. По крайней мере, я так думаю, разве нет?

Многое это меняет.
В Firefox например флэш плеер в отдельном процессе запускается - plugin_container по-моему.
Многие браузеры для каждой вкладки отдельный процесс создают.
Так что для начала надо определиться где хуки ставить.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 12 сентября 2011 07:00
· Личное сообщение · #20

cppasm прав, флеш в лисе не воспроизводится, для этого у них песочница сделана.

-----
Yann Tiersen best and do not fuck





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 12 сентября 2011 10:19
· Личное сообщение · #21

PE_Kill, cppasm
Я не использую FireFox, как-то мне он не по душе. А вот в Internet Explorer нет песочницы для флеша. Но даже если б и была, то депозит не использует флеш. Имхо, если нажать на флеш во время воспроизведения правой кнопкой мыши, то появляется характерное меню, которое отсутствует на таймере депозита. Но я не силён в веб-технологиях, возможно, и во флеше можно убрать это меню?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 сентября 2011 12:58
· Личное сообщение · #22

ARCHANGEL пишет:
возможно, и во флеше можно убрать это меню?


можно




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 12 сентября 2011 23:29
· Личное сообщение · #23

</center>
<script>
timer(30);
</script>
<br /><br />


Вот такой таймер - это ж не флеш, так что будем плясать с него. Попробую на досуге бряки на нём.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 13 сентября 2011 05:09 · Поправил: Zorn
· Личное сообщение · #24

Gideon Vi пишет:
можно

Разве ? Можно пример ?

Я про "О программе Adobe Flash Player"




Ранг: 60.7 (постоянный), 12thx
Активность: 0.040
Статус: Участник
KpTeaM

Создано: 17 сентября 2011 10:03 · Поправил: Runtime_err0r
· Личное сообщение · #25

Несколько не в тему, но всё же:

Есть такая прога - Proxomitron, работает, как локальный прокси-сервер, позволяет подменять содержимое сайтов до передачи их в браузер (я её пользую как фильтр для руборда )

Так вот, посмотрел я на letitbit, там в самом начале страницы идёт код:

download_link = 'http://letitbit.net/download.php?uid=...............';
ajax_check_url = 'http://s9.letitbit.net/ajax/download3.php';
count = 0;
seconds = 60;

Я думаю, что если в Proxomitron'е cсоздать правило менять seconds = 60 на seconds = 1 то будет всё OK

P.S. А вот более в тему: http://msdn.microsoft.com/en-us/library/aa741307(v=vs.85).aspx#The_MSHTML_Timer_API
http://msdn.microsoft.com/en-us/library/aa741299(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa741297(v=vs.85).aspx



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 17 сентября 2011 18:36
· Личное сообщение · #26

Ну давайте подумаем. Что происходит во время ожидания таймаута - очевидно можно разделить потоки на паразитные, которые не имеют отношения к ожиданию и полезные, которые выполняют синхронизацию. Их можно разделить по сисколом, стеку етц. Потоки выполняющие синхронизацию с точки зрения тс выполняют полезную работу, остальные можно остановить(скорее всего при этом не будет никаких дедлоков). Остальные помимо синхронизации выполняют всякую иную работу - чтото передают в сеть, аптейтят контексты окон етц. По этим событиям можно найти нужные треды. А дальше примитивно - колстек и брейки.

ARCHANGEL
Разве вы никогда не реверсили софт ?


 eXeL@B —› Основной форум —› Ускорение таймеров в браузере
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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