Русский / Russian English / Английский

Сейчас на форуме: -Sanchez- (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Дневники и блоги —› Keks Blog:О трудном пути...
Посл.ответ Сообщение

Ранг: 1.2 (гость)
Статус: Участник

Создано: 23 апреля 2020 21:54 New!
Цитата · Личное сообщение · #1

Всем привет!
Итак,мой блог и он для новичков-боюсь какой-нибудь старичок форума прочтёт о чём я пишу и будет только facepalm.
Что же рассказать о себе,мне много лет-почти 29(будет в этом году)и о ревёрсинге я знаю так как покупал когда-то Cracklab DVD 2009
кажется.
С того времени,почитывал книги\статьи,изучал некоторые malware.
Абсолютно неумею программировать,знаю только ассемблер.
Сейчас у меня две задачи:
1)Сделать множественный вход в EvE Online.
2)Сделать обход пароля в Counter-Strike:Source,чтобы заходить на все даже запароленные сервера.
Кстати это две игры,обе сетевые.
Вот проблемы с которыми я сейчас борюсь:
В сетевых приложениях в отличии от обычных часто используется неявные call eax(условно говорю)и в конце концов,ища где же найти тот самый прыжок где решается зайду ли я на сервер или нет обычно последняя команда это самая call eax которая используется сотни-тысячи раз в приложении.
И я пока не придумал ничего лучше чем отсчитывать сколько раз запуститься этот call eax(там другая команда,говорю примерно)до нужного момента.
А также в сетевых приложениях много непонятных прыжков(jne,je и т.д) которые ведут к самым непредсказуемым результатам
я например находил в Counter-Strike:Source прыжок который полностью блокировал подключение к серверам.
В общем,в планах сейчас разобрать каждый прыжок и думать что делать дальше.
P.S Практика и коды ассемблера будут позже,надо вспомнить где я сохранил свои наработки.
P.P.S Однажды мне почти удалось на запароленный сервер в Counter-Strike:Source но в последний момент
клиент игры крэшнулся.



Ранг: 1.2 (гость)
Статус: Участник

Создано: 26 апреля 2020 13:57 · Поправил: Keksov New!
Цитата · Личное сообщение · #2

Итак,про Counter-Strike:Source.
Что хорошо в этой игре при подключении к серверу есть отладочные строки

То есть до проверки подключится ли к серверу есть обязательная отладочная строка показанная выше.
+отладочная строка есть когда пишет что неверный пароль.
Я решил пойти по другому пути и сделать так чтобы подключение было как к незащищенному(без пароля) серверу.
А это значит надо обойти окно,в котором вначале запрашивается пароль.
Но с чего начать эту задачу?
Code:
  1. 5919D68F  | E8 ACEB1100              | call <JMP.&Plat_DebugString>            |
  2. 5919D694  | 83C4 04                  | add esp,4                               |
  3. 5919D697  | 803D C4966A59 00         | cmp byte ptr ds:[596A96C4],0            |

Это было то что у меня сохранено,первый call на вызов отладочных строк остальное что запускалось до этого.
Но я решил начать с нуля,и посмотреть на что поставить брейкпоинт чтобы остановится на создании окна.
После трасировки,поставил брейкпоинты на все ret чтобы выяснить последний до которого вызывается окно.
Code:
  1.            5002D218 serverbrowser.dll Отключена ret 4                           6 
  2.            500404EA serverbrowser.dll Включена  mov ecx,dword ptr ds:[500CEAA8] 2 
  3.            50055071 serverbrowser.dll Отключена ret 4                           2 
  4.            5805EF10 engine.dll        Отключена push ebp                        0 
  5.            5809D68F engine.dll        Отключена call <JMP.&Plat_DebugString>    0 
  6.            580C6BD5 engine.dll        Отключена call engine.580916E0            4 
  7.            580C6BFA engine.dll        Отключена call engine.580633F0            4 
  8.            580C6C53 engine.dll        Отключена call dword ptr ds:[eax+84]      3 
  9.            580C6C61 engine.dll        Отключена call dword ptr ds:[eax+4]       2 
  10.            581617F2 engine.dll        Отключена ret                             2 
  11.            581639CB engine.dll        Отключена call eax                        2 
  12.            58163A9C engine.dll        Отключена ret                             2 
  13.            58163E7B engine.dll        Отключена call engine.582075D0            2 
  14.            58163E9B engine.dll        Отключена ret                             2 
  15.            581714EE engine.dll        Отключена ret 4                           2 
  16.            581715C5 engine.dll        Отключена ret                             2 
  17.            58171FE8 engine.dll        Отключена ret 4                           2 
  18.            581BFACC engine.dll        Отключена ret                             2 
  19.            581D39A2 engine.dll        Отключена call engine.581D1CF0            4 
  20.            581D39A7 engine.dll        Отключена call engine.581D7C40            4 
  21.            581D39AC engine.dll        Отключена call engine.5808E430            4 
  22.            581D39B9 engine.dll        Отключена call dword ptr ds:[eax+174]     4 
  23.            581D39BF engine.dll        Отключена call engine.581D3CC0            4 

Как видно есть две dll engine.dll и serverbrowser.dll.
Посмотрев на вызовы в serverbrowser я заметил что они часто начинаются с vgui2 и я поставил брейкпоинты на все начинающиеся с этого вызовы.
Есть большая вероятность,если на большинство поставить брейпоинты несколько сработают.
Потом при отладке я нашёл #ServerBrowser_ServerRequiresPassword"(или похожую)и выполнил полный поиск строк,оказалось что все они в serverbrowser.dll
Тогда я поставил брейкпоинт на все строки начинающиеся с #ServerBrowser и наконец брейкпоинты стали срабатывать при создании окна.
Так появилось,один брейкпоинт прямо до появления окна и несколько которая срабытывают после.
Что это за окно,так вот оно

Вначале конечно их было очень много,но я долго отключал те что срабатывали раньше и в итоге осталось вот что
Code:
  1. Тип        Адрес    Модуль/Метка/Искл Состояние Дизассемблированный код         Це Краткое описа
  2. Программно                                                                         
  3.            51B23EE8 serverbrowser.dll Отключена je serverbrowser.51B23F00       2  
  4.            51B23EEC serverbrowser.dll Отключена push serverbrowser.51BB4974     2  
  5.            51B504EA serverbrowser.dll Отключена mov ecx,dword ptr ds:[51BDEAA8] 3  eto v nachale
  6.            5636F9E2 engine.dll        Отключена call engine.563215B0            15 

mov на котором написано eto v nachale срабатывает в начале,потом между подключение к обычному серверу
и серверу под паролем есть разница,брейкпоинт на обычном сервере срабатывает на jmp а на защищенном на je(он есть в в списке).
Но где эта разница(в прыжках),неизвестно есть последний адрес это какая-то
Code:
  1. FF50 14                  | call dword ptr ds:[eax+14]
  2.  call engine.563215B0                    |

Я думаю окончательная проверка где-то там,буду искать дальше.




Ранг: 89.6 (постоянный)
Статус: Участник

Создано: 29 апреля 2020 00:55 New!
Цитата · Личное сообщение · #3

Keksov пишет:
Сделать обход пароля в Counter-Strike:Source

Невозможно. То чем ты занимаешься сейчас это просто делаешь видимость чтобы клиент думал что пароль верный/ненужный. Но проверяет этот пароль сервер, и даже если ты сделаешь чтобы клиент думал что все ок, то сервер просто не будет тебе отвечать. Можно попробовать брутфорсить пароль, но займет слишком дофига времени.

| Сообщение посчитали полезным: ARCHANGEL



Ранг: 271.2 (наставник)
Статус: Участник

Создано: 29 апреля 2020 01:18 New!
Цитата · Личное сообщение · #4

Keksov пишет:
P.P.S Однажды мне почти удалось на запароленный сервер в Counter-Strike:Source но в последний момент клиент игры крэшнулся.

Откуда такая уверенность? А если головой подумать - какая может быть проверка пароля в клиенте при подключении к серверу? За каким смыслом оно может быть так устроено?



Ранг: 1.2 (гость)
Статус: Участник

Создано: 29 апреля 2020 18:39 New!
Цитата · Личное сообщение · #5

Boostyq пишет:
Невозможно. То чем ты занимаешься сейчас это просто делаешь видимость чтобы клиент думал что пароль верный/ненужный. Но проверяет этот пароль сервер, и даже если ты сделаешь чтобы клиент думал что все ок, то сервер просто не будет тебе отвечать. Можно попробовать брутфорсить пароль, но займет слишком дофига времени.

Вообще-то нет!
Я пытаюсь изменить приложение так чтобы пароль вообще не запрашивался!
Когда заходишь на сервер без пароля,нет окна с просьбой ввести пароль.
Так-что есть разница,где-то в программе есть переход,запрашивать пароль или нет.
И как поведёт себя сервер я незнаю.f13nd пишет:
Откуда такая уверенность? А если головой подумать - какая может быть проверка пароля в клиенте при подключении к серверу? За каким смыслом оно может быть так устроено?

Проверка защищенный сервер(с паролем) или нет точно есть.




Ранг: 681.5 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 10 мая 2020 00:55 New!
Цитата · Личное сообщение · #6

Keksov
Ты долбоёб заблуждающийся юноша. Выше про пароли и сервера всё верно написали

| Сообщение посчитали полезным: Alchemistry

 eXeL@B —› Дневники и блоги —› Keks Blog:О трудном пути...

Видеокурс ВЗЛОМ