![]() |
Есть тут замечательная тема с инжектом в функции от могайки: https://blast.hk/threads/2370/#post-27225
Все в ней хорошо, только не рассказывается как искать функции и параметры к ним. Сейчас покажу как перехватывать сообщения, введенные нами в чат. Значит для начала запускаем ЖТА и логинимся на рандомный аккаунт, чтобы был доступ к чату. В чате пишем что-нибудь на русском, в CE выбираем процесс с ЖТА, тип исхомых данных выбираем String, ставим галочку напротив UTF-16, вводим что-нибудь в чате, тоже самое в поиске и находим наш адрес. upload_2019-5-26_12-28-0.pngVadim.dll · 26 Май 2019 в 12:51' data-fancybox="lb-post-342828" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/30583/" style="cursor: pointer;" title="upload_2019-5-26_12-28-0.png"> https://forum.antichat.xyz/attachments/27342828/ Добавляем в выбранные адреса, жмем ПКМ по добавленному адресу -> Find out what writes to this address. Потом отправляем сообщение в сампе и смотрим что произошло: upload_2019-5-26_12-29-56.pngVadim.dll · 26 Май 2019 в 12:51' data-fancybox="lb-post-342828" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/30585/" style="cursor: pointer;" title="upload_2019-5-26_12-29-56.png"> https://forum.antichat.xyz/attachments/27342828/ обнаружена инструкция, взаимодействующая с нашими данными в строке ввода. В данном случае эта инструкция обнуляет буффер после отправки сообщения. Жмем Show Dissasembler и вот мы в теле какой-то функции. Перемещаемся к началу: upload_2019-5-26_12-33-21.pngVadim.dll · 26 Май 2019 в 12:51' data-fancybox="lb-post-342828" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/30588/" style="cursor: pointer;" title="upload_2019-5-26_12-33-21.png"> https://forum.antichat.xyz/attachments/27342828/ (Начало можно определить по куче int опкодов). Значит видим в начале две инструкции, которые занимаю 5 байт, как раз хватит для того, чтобы сделать jmp к нашей функции. Дело осталось за малым. Пишем инжект: C++: Код:
voidТеперь надо бы определить, какие аргументы в эту функцию передаются, я делал это так: накидываю push'ей, потом смотрю какие данные передаются туда. Здесь например 2 push'a, запускаем данный скрипт в игре и ставим Break and Trace instructions на нашей jmp: https://forum.antichat.xyz/attachments/27342828/ Вводим любое сообщение в чат и смотрим, какие данные передаются в наших push'ах. В первом пуше - во втором аргументе передается какой-то непонятный DWORD https://forum.antichat.xyz/attachments/27342828/ Во втором пуше - первом аргументе какой-то указатель, возможно это указатель на нашу строку. upload_2019-5-26_12-44-16.pngVadim.dll · 26 Май 2019 в 12:51' data-fancybox="lb-post-342828" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/30591/" style="cursor: pointer;" title="upload_2019-5-26_12-44-16.png"> https://forum.antichat.xyz/attachments/27342828/ Так и есть upload_2019-5-26_12-45-35.pngVadim.dll · 26 Май 2019 в 12:51' data-fancybox="lb-post-342828" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/30592/" style="cursor: pointer;" title="upload_2019-5-26_12-45-35.png"> https://forum.antichat.xyz/attachments/27342828/ Теперь осталось дописать нашу функцию, которая будет ловить эти сообщения. Второй параметр можно убрать. C++: Код:
voidВ итоге получаем перехват сообщения: upload_2019-5-26_12-48-1.pngVadim.dll · 26 Май 2019 в 12:51' data-fancybox="lb-post-342828" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/30594/" style="cursor: pointer;" title="upload_2019-5-26_12-48-1.png"> https://forum.antichat.xyz/attachments/27342828/ Цитата:
Я только изучаю все это дело, поэтому способ может быть не самый лучший. Может кто знает что-нибудь по лучше? |
Код под спойлером бы привел в порядок, читаемость его ужасна. А так молодец, гайд удался, я все понял!
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
спасибо за гайд, так сказать) скинь литературу, откуда ты про это прочитал. а то мои навыки остановились пока что на том, чтобы найти адрес, а после найти его базовый + все поинтеры и смещения.
|
| Время: 01:35 |