Hack Forum For Counter-Strike 1.6

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Hack Forum For Counter-Strike 1.6 » Статьи » Взламываем Античит на примере UCP.(или смерть UCP)


Взламываем Античит на примере UCP.(или смерть UCP)

Сообщений 1 страница 2 из 2

1

кому не интересна статься по взлому, а нужен только чит для UCP, лезем в конец статьи, читаем что скачать и как пользоваться.

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

Здравствуйте. Дело как говориться было вечером, делать было нечего.... Сидел читал про кс форумы и свое внимание привлек меня какой-то новый античит. Авторы которого яростно по всем формумам божились, что их античит лучший. ну да, подумал я... ага сейчас. пошли вы на йух!!! делать то нечего, вечер ведь . не считая написания примера и этой статьи времени ушло час-два.... чтобы убить его напрочь.... вот такой вот лажовый античит или я просто крякер хороший
итак собственно начнем повествовать.
античит представляет собой клиент сервер.
небольшое описание.
клиент:
ехеный файл, зажатый криптором, запускающий себя наподобии sXe и исполняющий код hl.exe в теле процесса ucp.exe, причем при всем при этом, что интересно передает кучу парамтров через командную строку....
вообщем вывод такой, да ну его нах трогать, навороченный он, время тратить влом, больше одного вечера выйти может..... ибо криптор явно не автором античита писан.... проходим мимо...
сервер:
выполнен как плугин для amxx. хм... какой-то странный выбор... однако аж прям интересно что там внутри.... как это работает? таких античитов я больше не видел... начинаем думать.... amxx использует весьма ограниченный набор команд. в голову всплывает лишь одно как можно связаться - через info с клиента. ладно отложим сомнения.
немного отступим от нашей темы. amxmodx - плугин написанный кем-то BAILOPANом и еще кем. кстати хороший плугин. но такое чувство что его команда ярые линуксоиды и стороники открытого кода... лезем на их сайт и че мы видим... OMG!!!!
__http://forums.alliedmods.net/showthread.php?t=19368
ды они сами предлогают дизасемблировать коды плугинов для своего творения. как я понял они недавно какого-то трояна нашли в популярном плушине и отсюда кипишь.
там кстати все по анлийский.... особо читать там нечего, кто знает асьм, тот не читая все поймет.
итам качаем!
__http://forums.alliedmods.net/showpost.php?p=583502&postcount=38
сие чудо, есть не что иное как дизасемблер для amxx плугинов. синтаксис немного каличный но понять мона.
пролистав плугин я понимаю что интересного там ничего нету, всякие функции, обработчики бан листов, кроме события client_connect
опаньки! вот оно! че нам надо итак привожу сюда код:
Цитата:
PROC client_connect
break
break
push.c 0x1E14
push.s 0xC
push.c 0x8
sysreq.c client_cmd
stack 0xC
break
push.c 0xDF4
push.c 0x1E4C
push.s 0xC
push.c 0xC
sysreq.c client_cmd
stack 0x10
break
push.c 0x20
push.c 0x11F4
push.c 0x1E84
push.s 0xC
push.c 0x10
sysreq.c get_user_info
stack 0x14
break
push.c 0x11F4
push.c 0x4
sysreq.c strlen
stack 0x8
move.alt
const.pri 0x7
jsleq jump_0053
break
push.c 0x20
push.c 0x11F4
push.c 0x1E9C
push.s 0xC
push.c 0x10
sysreq.c get_user_info
stack 0x14
break
push.c 0x11F4
push.c 0x4
sysreq.c strlen
stack 0x8
move.alt
const.pri 0x7
jsleq jump_0054
break
push.c 0x1F4
push.s 0xC
push.c 0x4
sysreq.c get_user_userid
stack 0x8
heap 0x4
stor.i
push.alt
push.c 0x1EB4
push.c 0xC
sysreq.c server_cmd
stack 0x10
heap -0x4
break
zero.pri
retn
jump_0054:
break
zero.pri
retn
jump_0053:
break
stack -0x204
zero.pri
addr.alt -0x204
fill 0x204
break
push.c 0x0
push.c 0x0
break
jump_0060:
break
pushaddr -0x208
push.c 0x80
pushaddr -0x204
load.s.pri -0x20C
inc.s -0x20C
push.pri
push.c 0x1278
push.c 0x14
sysreq.c read_file
stack 0x18
jzer jump_0055
break
addr.pri -0x204
add.c 0x20
move.alt
zero.pri
stor.i
break
pushaddr -0x204
push.c 0x4
sysreq.c strlen
stack 0x8
move.alt
const.pri 0x7
xchg
jsleq jump_0056
push.c 0x0
push.c 0x11F4
pushaddr -0x204
push.c 0xC
sysreq.c equal
stack 0x10
jzer jump_0056
const.pri 0x1
jump jump_0058
jump_0056:
zero.pri
jump_0058:
jzer jump_0059
break
push.c 0x5F4
push.s 0xC
push.c 0x4
sysreq.c get_user_userid
stack 0x8
heap 0x4
stor.i
push.alt
push.c 0x1EE4
push.c 0xC
sysreq.c server_cmd
stack 0x10
heap -0x4
break
zero.pri
stack 0x20C
retn
jump_0059:
jump jump_0060
jump_0055:
break
stack -0x80
zero.pri
addr.alt -0x28C
fill 0x80
break
push.c 0x1F
pushaddr -0x28C
push.s 0xC
push.c 0xC
sysreq.c get_user_name
stack 0x10
break
stack -0x40
zero.pri
addr.alt -0x2CC
fill 0x40
break
push.c 0x1
push.c 0xF
pushaddr -0x2CC
push.s 0xC
push.c 0x10
sysreq.c get_user_ip
stack 0x14
break
push.c 0x11F4
pushaddr -0x2CC
pushaddr -0x28C
push.c 0x1F14
push.c 0x10
sysreq.c log_amx
stack 0x14
break
zero.pri
stack 0x2CC
retn
функций длиновата, но самое интересное в начале.
вызывается два раза функция get_user_info, что полностью подтвердила мои первоночальные сомнения насчет принципа работы античита....
кстати такое глупое чувство, что там тоже есть бэк дор, я особо сильно не разбирался, ибо цель была другая, но помоему автор оставил себе бэкдор в античите... делайте выводы.... хотя пускай это останется на его совести
итак, в начале вызывается функция
push.c 0x20
push.c 0x11F4
push.c 0x1E84
push.s 0xC
push.c 0x10
sysreq.c get_user_info
потом считается длинна возвращенного массива, если она больше скольких-то, то считаем что клиент на античите запущен. а сам массив - идентификатор, как я понял винчестера.... короче бред какой-то, как в начале показалось, что сложно на клиенте в конфиг прописать setinfo??? как оказалось нет, не получиться автор хитрее оказался аж до того что я ржунимагу от такого алгоритма аутенфикации...

итак что задетектить как делать сетинфо, пишем свой плугин для amxx
Цитата:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <file>

public plugin_init()
{
register_plugin("UCPFuck", "1.0", "BFG")
register_concmd("ucpfuck", "ucpfuck", ADMIN_KICK, "< fuck UCP !!!!! >")
return PLUGIN_CONTINUE
}

public ucpfuck(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new str[1024]
get_info_keybuffer(id, str, 1024)
server_print("%s\n",str)
client_print(id, print_console,"%s\n",str)
new hwfl=fopen("ucpfuck.txt", "w")
fputs(hwfl, str)
fclose(hwfl)

return PLUGIN_CONTINUE
}
что он делает надеюсь понятно. если написать в админской консоли ucpfuck, то в ответ получим текст InfoKeyBuffer клиента. выведен он будет в консоль админа, сервеа и в файл ucpfuck.txt.
кому интересно попробовать я думаю проблемы скомпелировать этот плугин не составит.
мммм.... в ответ в консоле получаем что-то типа этого
Цитата:
.........\cl_lw\1\\111B61FA\ch\1\bottomcolor\6.... .
опаньки, идентификатор винта! он как раз пишется когда в серверной консоле аутентифицируется античит у клиента.
в рот его чих-пых, я думал там просто setinfo "" "111B61FA". я немного потупил, как я не писал setinfo не работало... ну да автор ведь супергений, коль смог придумать такой клиент-серверный античит.
х сним, лезем в файл, тама видим:
Цитата:
.....l_lw\1\°‡„‰\111B61FA\ch\1\bo....
что ж маленький не сдох..... че за каракули??!! ах да, это сверх гений автора!
хотя конечно я хорошо тупанул, можно было тупо вернуться к плугину amxx и увидеть, что функция get_user_info, передает параметр 0x1E84 который как
Цитата:
раз и есть arr_004 array 12
( 0x7F , 0xB0 , 0x87 , 0x84 , 0x89 , 0x0 , 0x7F , 0x84 , 0x87 , 0xB0 ,
0x89 , 0x0 )
в рот мне ноги, эти циферки в ACSII коде как раз и есть те самые иерогливы. в контре они считаются непечатуемыми... мля....
лезем за старым добрым OllyDebug/SoftICE кому как подуше. запускаем кс без античита, находим место в памяти где храниться эта строка, переписываем память на правильный инфобуфер, подключаемя и.....!!! РАБОТАЕТ!!!!!!!!!!!!!! без клиента на сервере с античитом, но пока она проблемка - под отладчиком но эт уже мелочь. быстренько придумываем алгоритм и пишем программу!
алгоритм такой.
при запуске передаем hl.exe параметр +setinfo "_UCP1" "12345678", что бы выделить место под то куда записывать нужное нам сетинфо.
пишешь прогу в MSVSC++. суть проги она находит в памяти модуля hl.exe строку содержащую _UCP1\\12345678 (то что мы передали) и подменяем ее на то что хотим Ы
исходники софтины прилогаются, разобраться в трех функциях по 4 строки я думаю не проблема. один нюанс - в начале создается тред. этот тред ищет в памяти инетересующий нас кусок до тех по пока не найдет - это сделанно, потому что кс не сразу загружает инфобуфер.
как загружать будем? а ды просто переименуем в *.asi.
и что теперь мы имеем? а ды так ничего, всего лишь эмулятор UCP... ммм... как бы теперь почитерить??? ды очень просто берем АБСОЛЮТНО любой чит и запускаем его! будь то бэдбой, файтерФХ или еще чего!

вот и трындец этому античиту, чтобы автор неделал, не уходя от формата сервера в виде amxx, вскрыть защиту по приведенным данным элементарно, любому, кто мало-мальский понял этот текст.
ВООБЩЕМ НЕХРЕН БЫЛО ПО ВСЕМ ФОРУМАМ КРИЧАТЬ ЧТО ЭТО САМЫЙ МЕГА КРУТОЙ АНТИЧИТ. ФТОПКУЕГО!!!!!!!!!!
оказался последней лажей!

а теперь, собственно, тем кому была просто интересно почитерить:
качаем архим (там кстати и исходники, в папке source). поэтому кому ломать самому не инетересно в Source не лазием

Установка:
1) копируем три файла

ucpsuck.bat
UCPSUCK.dll
ucpsuck.txt

в папку с hl.exe

2) погдготавливаем свой либымый чит
здесь в архиве лежит чит для примера. файл .mix чтобы его применить скопируйте его в папку с hl.exe. запуск чита - кнопка F1. сам чит - просто вал хак.
По идее можно использовать абсолютно любой чит.

3) запускаем ucpsuck.bat
игра запуститься. можете присоединяться к серверу с UCP
при желании можно отредактировать файл ucpsuck.txt. при запуске считываются первые его восемь байт и передаются как идентификатор вашего винчестера серверу. по нему банит UCP. если при подсоединении получите ответ, что забанены, меняйте содержимое этого файла

Успешной вам игры. ах, да все это писалось на версии UCP - 2.0
скриншот хака прилогается!
__http://imageshost.ru/links/962042f2eb77cfec24209e418ff30be9

мда, я вас наверно за тероризировал, где же сам файл, о боже где он. вот он!

__http://dump.ru/file/1386309

0

2

:cool:

0


Вы здесь » Hack Forum For Counter-Strike 1.6 » Статьи » Взламываем Античит на примере UCP.(или смерть UCP)