Сейчас на форуме: vsv1, r0lka, -Sanchez-, testrev1337, johnniewalker (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› Кириллица vs. UDP
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 февраля 2010 23:30 · Поправил: Yuri4850
· Личное сообщение · #1

Есть консольная утилита pbucon.exe, входящая в комплект многих программ для удаленного администрирования игровых серверов (в частности, COD4). Она позволяет получать/отсылать сообщения внутриигрового чата, не заходя в игру. Есть проблема с кириллицей. Отсылает корректно, получает байт FAh (250) для любого символа кириллицы.

Отсюда можно скачать pbucon.exe (68 КБ).

CoD RconTool 11.3.1 - пример программы, в которой используется pbucon.

Написал dll для перехвата функции recvfrom из wsock32.dll, через которую pbucon получает данные. В результате убедился, что pbucon не портит кириллицу. Он получает ее уже "мертвой", т.е. на данном этапе кириллица восстановлению уже не подлежит.

Однако анализ пакетов UDP при помощи iptools.exe v1.98.0.8 показывает, что из сети приходят одинаковые пакеты для одинаковых сообщений и разные - для разных, в т.ч. и для разных сообщений одинаковой длины. Т.е. если я напишу непосредственно в игре "абвг" и "абвд", то придут разные пакеты, если же напишу еще раз "абвг", то придет точно такой же пакет, как и первый.

Т.е. где-то между моей сетевой картой и wsock32.dll происходит "порча" кириллицы. Как выяснить, где именно?

По результатам дизассемблирования recvfrom из wsock32.dll по сути является переходником к WSARecvFrom из ws2_32.dll. Но ее анализ для меня пока слишком сложен. Я не программист...



P.S. Archer, для перехвата recvfrom я подгружаю в АП pbucon.exe самостоятельно написанную dll с помощью самостоятельно написанного инжектора, причем все это на чистом VB6. Просьба не закрывать как это.



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

Создано: 15 февраля 2010 09:52
· Личное сообщение · #2

Yuri4850 пишет:
Т.е. если я напишу непосредственно в игре "абвг" и "абвд", то придут разные пакеты, если же напишу еще раз "абвг", то придет точно такой же пакет, как и первый.

1) Такие темы ты можешь создавать только в вопросах новичков.
2) Одинаковые, разные пакеты - это все слова. Где образцы?
3) Естественно, если pbucon не расчитан на кирилицу, то все запрещенные буквы он будет переводить в один и тот же код. Он и делает ее мертвой. Но скорее всего при передаче.
4) Т.ч. работы много, а результата ноль. wsock32.dll ws2_32.dll - это TCP/IP стек Ему глубоко "фиолетово", что там внутри пакетов.



Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 февраля 2010 11:58
· Личное сообщение · #3

1. К делу не относится.
2. См. вложение - UDP-пакеты для 3 разных слов (пакеты без заголовков).
3. Я отсылаю с помощью pbucon кириллицу без искажений.
4. Вот я и пытаюсь найти, кому все-таки не фиолетово.

f45c_15.02.2010_CRACKLAB.rU.tgz - UDP.zip



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

Создано: 15 февраля 2010 12:15
· Личное сообщение · #4

Code:
  1. .text:00402270 loc_402270:      
  2. .text:00402270                 mov     al, [ecx]
  3. .text:00402272                 cmp     al, 0Dh
  4. .text:00402274                 jz      short loc_402285
  5. .text:00402276                 cmp     al, 0Ah
  6. .text:00402278                 jz      short loc_402285
  7. .text:0040227A                 cmp     al, 20h
  8. .text:0040227C                 jb      short loc_402282
  9. .text:0040227E                 cmp     al, 7Fh
  10. .text:00402280                 jbe     short loc_402285
  11. .text:00402282
  12. .text:00402282 loc_402282:               
  13. .text:00402282                 mov     byte ptr [ecx], 0FAh
  14. .text:00402285
  15. .text:00402285 loc_402285:               
  16. .text:00402285                 mov     al, [ecx+1]
  17. .text:00402288                 inc     ecx
  18. .text:00402289                 test    al, al
  19. .text:0040228B                 jnz     short loc_402270

IDA почти всегда выручит.
Не разбирался, но думаю оно.



Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 февраля 2010 12:37
· Личное сообщение · #5

О_О
Похоже на правду, буду проверять...



Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 февраля 2010 16:59
· Личное сообщение · #6

OSA, спасибо огромное.

Если бы я догадался поискать это гадкое 0xFAh, сэкономил бы дня 3 времени.
Правда, пришлось нопить еще. И еще решить проблему - 1 байт FA нужен был (что-то вроде метки, указывающей на начало сообщения), сейчас же он теряется. Пришлось написать dll, через которую ловлю WriteFile и исправляю ее буфер.


Проблема решена, тему можно закрывать/удалять.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 15 февраля 2010 18:06
· Личное сообщение · #7

Тему закрыть и автор может, кнопка Закрыть тему под кнопкой Отправить сообщение.
З.Ы. На васме пинка дали за 2 одинаковые темы, надо ещё и тут пинка дать? На своих ошибках не учишься?


 eXeL@B —› Крэки, обсуждения —› Кириллица vs. UDP
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати