5

У меня есть приложение windows exe, которое используется для отправки пакетов на сервер в ящике. Это приложение (позволяет называть его клиентским приложением), безусловно, близко к источнику, но какой-то умный хакер, отредактированный в двоичном формате, сделал передачу пакетов, которые скремблированы.Как я могу перепрограммировать скремблированные пакеты в приложении Windows?

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

Для работы шестнадцатеричного клиента требуется дополнительная dll для запуска, чего не было у старого клиента. Я предполагаю, что каким-то образом клиенту с шестнадцатиричным клиентом удалось загрузить эту DLL (позвонит на него client.dll), а функция этой DLL - реализовать скремблирование/дешифрование, подключившись к некоторым окнам api, которые перенаправили все пакеты, отправленные с client.exe.

Если есть кто-нибудь, кто может направить меня на то, как даже начать работу над тем, как все это работает, и как я могу перепроектировать скремблирование, это было бы действительно оценено.

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


двоичных скачать любую заинтересованную стороны:

http://dl.getdropbox.com/u/46623/client.dll

http://dl.getdropbox.com/u/46623/newClient.exe

http://dl.getdropbox.com/u/46623/originalClient.exe

Это обыкновение работать, потому что файлы ресурсы необходимы - они около 3 гигов, так слишком большой для загрузки в любом месте. Имена были изменены для защиты виновных =), но это, вероятно, не защищает имя dll ...

ответ

3

Я предполагаю, что человек, который закодирован этот крючка который добавляет шифрование пакета ввод/вывод для вышеупомянутой программы имеет либо зацепил сокеты API, соответствующие окна (WSASend, send и т.д.) или зацепил внутренние программные функции, используемые для отправки/приема данных.

Это, как говорится, я предлагаю вам использовать программу обнаружения крюка (например, RkUnhooker), чтобы узнать, что на самом деле подключено. Как только вы узнаете, какие API-интерфейсы подключены, вы также должны знать, куда идут эти крючки, и оттуда вам придется вручную перепрограммировать функции hook.

Что касается предмета обучения тому, как это сделать, я не мог бы направить вас к одному учебнику, чтобы научить вас всему, но я настоятельно рекомендую вам посмотреть сайт Tuts4You, в нем есть множество руководств, которые отвечали бы всем ваших потребностей.

Если возможно, загрузите копию отредактированного клиента &, если у меня есть время, я буду кодировать вам репликацию шифрования & функции дешифрования.

+0

спасибо за предложение помощи - я могу, конечно, загрузить двоичную и dll, если вам нравится, но вы не сможете запускать его без файлов вспомогательных ресурсов, которые приходят на здоровенный 3gigs (это игровой клиент в конце концов). И нет, я не пытаюсь обмануть, просто пытаясь подражать клиенту. – Chii

+1

Просто загрузите копию модуля hook, я должен извлечь из него алгоритмы шифрования и дешифрования. – Irwin

+0

загрузил и отредактировал исходное сообщение внизу. ура! – Chii

2

Вам нужно подключить функции, экспортируемые дополнительной DLL, и посмотреть на вызываемые функции, а параметры, являющиеся передан им. Это не будет легко, так как у вас нет информации о типе (например, подписи функций для экспорта DLL).

Для получения дополнительной информации о подключении API обратитесь к here. Вам также понадобится хороший отладчик, попробуйте Windbg от Microsoft.

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

 
       +--------------+ 
Input--------->| Original App |--------->Response1 
       +--------------+ 

       +------------+ 
Input--------->| Modded App |--------->Response2 
       +------------+ 

Теперь, как только вы поймете, как использовать функции из дополнительных DLL вы можете использовать его сами точно так же оригинальное приложение делает.

Смежные вопросы