Сейчас на форуме: asfa (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Пытаюсь обойти защиту закодированного файла. |
Посл.ответ | Сообщение |
|
Создано: 30 июня 2010 16:47 · Поправил: dsnup · Личное сообщение · #1 Вот есть такая задачка. Есть файл swid.php В нем код: Code:
Как мы видим это простой код который вызывает функцию public_swis() Далее полученный результат попадает в eval() eval() - выполняет как код php ЗАДАЧА --- КАК ПОЛУЧИТЬ ДАННЫЕ которые ВОЗВРАЩАЮТСЯ от функции public_swis() ПРИ ЭТОМ есть два условия!!! 1. Размер самого файла swid.php всегда должен быть равен ЧЕТКО 38 байт. Если не равен, то выполнение скрипта не будет. 2. В файле swid.php ровно 5 строчек. Если вставить новую строчку в любую часть файла, то скрипт не будет работать! То есть получается, что если попытаться дописать или изменить файл swid.php, то скрипт не будет работать. ЗАДАЧА --- КАК ПОЛУЧИТЬ ДАННЫЕ которые ВОЗВРАЩАЮТСЯ от функции public_swis() Файл PHP задокирован фишратором. Чтобы скрипт работал к нему дается декодер --- decoder_zid.so Сам декодер это модуль (расширение для php, Extension) Расширение подключается через php.ini Сам PHP работает через Апач - КАК МОДУЛЬ (mod_php) Процесс работы такой: заходишь на адрес Запускается апач, php обрабатывается скрипт модулем расшифровки decoder_zid.so в модуле есть функция public_swis() которая делает расшифровку и возвращает ее скрипту а далее сам скрипт ее выполняет через eval() Сам модуль decoder_zid.so - написан на Си под FreeBSD Так вот по мимо дешифровки есть два правила которые написал выше. если они не выполняются, то дешифровщик прекращает работу. Как обойти или как поймать уже чистый ответ от функции public_swis() ??? Уже бью над этим не первую неделю..... ![]() |
|
Создано: 30 июня 2010 17:54 · Личное сообщение · #2 |
|
Создано: 30 июня 2010 18:25 · Личное сообщение · #3 |
|
Создано: 30 июня 2010 18:27 · Личное сообщение · #4 |
|
Создано: 30 июня 2010 18:43 · Личное сообщение · #5 |
|
Создано: 30 июня 2010 18:48 · Личное сообщение · #6 Кстате. Вот как раз по поводу низкоуровневому программингу. Сам php есть в исходниках. Исходники на Си под FreeBSD Фишка в том, что когда устанавливают сервер, то компилируют Апач и PHP и сам модуль чтобы они оба работали - mod_php mod_php тоже на Си. Есть идея взять исходник и немного переделать, так как все проходит через него. Написать чтобы он все что получает или отдает скидывал отдельно в файл. В итоге тут и можно поймать раскодированный код. ![]() |
|
Создано: 30 июня 2010 19:06 · Личное сообщение · #7 |
|
Создано: 30 июня 2010 19:37 · Личное сообщение · #8 |
|
Создано: 01 июля 2010 10:21 · Личное сообщение · #9 |
|
Создано: 01 июля 2010 11:35 · Поправил: _ruzmaz_ · Личное сообщение · #10 |
|
Создано: 01 июля 2010 15:14 · Личное сообщение · #11 |
|
Создано: 01 июля 2010 15:37 · Поправил: ZLOvar · Личное сообщение · #12 dsnup Я конечно не ПХП гуру, но если в скрипте нет ничего кроме вызова ХЗ какой функции и присвоения её результата переменной eval(), то во-первых где проверка на целостность и во-вторых: dsnup пишет: 2. В файле swid.php ровно 5 строчек. Если вставить новую строчку в любую часть файла, то скрипт не будет работать! Я почему-то увидел в скрипте только 3 строки ![]() ???????????????????? ![]() |
|
Создано: 01 июля 2010 15:53 · Личное сообщение · #13 |
|
Создано: 01 июля 2010 17:46 · Личное сообщение · #14 |
|
Создано: 01 июля 2010 18:01 · Личное сообщение · #15 |
|
Создано: 02 июля 2010 15:48 · Поправил: dsnup · Личное сообщение · #16 decoder_zid.so он доступен это типа программа для PHP. она к ПХП подключается сама она на Си написана, компиляция под FreeBSD и именно в ней находится функция public_swis() Декомпилировать decoder_zid.so получается надо. но, потом не собирешь. я пытаюсь через hex поймать в decoder_zid.so функцию public_swis() Veliant выполнили все условия - согласен но если выкинуть строчку php то скрипт не запустится уже сразу. это даже не из-за защиты, а из-за того что PHP сервер выполняет скрипт только если написано <?php - это начало скрипта и ?> - это конец занчит эти две строчки вообще не трогаются. так как иначе это будет считаться не скрипт, а простой текстовой файл. ![]() |
|
Создано: 02 июля 2010 16:07 · Личное сообщение · #17 |
|
Создано: 02 июля 2010 16:28 · Личное сообщение · #18 я думал декомпилировать на Си пока пробую подобрать декомпилятор. а вот дизасемблирование это другое дело. я особо в нем не рулю. но это не страшно. мне хотя бы знать что через асм возможно будет что-то сделать. не умею я в асме ловить контрольки. я еще другой вариант обдумываю - это в оперативке поймать. но с оперативки я могу снять дамп. а что с ним далее делать я не заню. да и думаю это не поможет. так как функция возвращает текст. а приводить в наормальный вид из дампа - думаю не выйдет. или я ошибасью? я работал с оперативкой только когда крякал игры. игры легко, там не текст, а параметры - типа много патрон или бесссмертие. достаточно на hex поменять и все. вообще возможно в оперативки ловить куски текса? ![]() |
|
Создано: 02 июля 2010 20:13 · Личное сообщение · #19 |
![]() |
eXeL@B —› Вопросы новичков —› Пытаюсь обойти защиту закодированного файла. |