Сейчас на форуме: asfa, Rio, _MBK_, Adler (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Как вручную реализовать перехват сплайсингом???
Посл.ответ Сообщение

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

Создано: 21 апреля 2013 14:51
· Личное сообщение · #1

Всем привет!
Я пытаюсь научится создавать читы к играм. Хочу реализовать ВХ. Чтоб это сделать, надо перехватить функции вывода графики на экран.
Но пока не так сложно. Есть просто прога, которая по клавише вызывает API функцию по выводу сообщения.
Помогите сделать так, чтоб по этой кнопке выполнилась другая функция, либо вообще ничего. Как мне найти вызов этой функции (MessageBoxA(0,'Перехват API','API',MB_OK);), если код мягко говоря не на страничку и не на две???

Спасибо заранее!!!



Ранг: 42.2 (посетитель), 42thx
Активность: 0.040
Статус: Участник

Создано: 21 апреля 2013 15:28 · Поправил: kid
· Личное сообщение · #2

Не совсем понятно что понимается под словами "вручную" ....
мож я не прав , но делаю это так :

MessageBoxA - функа библиотеки user32.dll которая в свою очередь отображена в адресное пространство вашего процесса. После загрузки вашего процесса в таблице импорта будет отображен текущий адрес точки входа в эту функу .
Варианты -
Инжект своей длл в жертву с целью подмены адреса импорта , изменения точки входа в функу с целью переадресации в тело вашего кода
Аттач к процессу с дебаг привилегиями и собстна теже процедуры .

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


Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 21 апреля 2013 15:59
· Личное сообщение · #3

vovken1997 пишет:
Я пытаюсь научится создавать читы к играм.


вот для начала прочти это http://rghost.ru/45448427

Там базовые понятия и весьма интересно написано, примеры тоже есть.

-----
-=истина где-то рядом=-


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

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

Создано: 21 апреля 2013 16:08
· Личное сообщение · #4

Вот это я имел введу под сплайсингом
Спасибо за таблицу импорта, НО приложение с защитой от читов легко от этого избавляется. То есть надо или как-то вырубать защиту или сплайсингом, правдо с защитой опять же прийдётся повозится. В ручную я имел введу в отладчике, а не в Delphi программе. Просто по этой ссылке модуль перехвата есть, а как он работает я всё таки не очень понимаю.
И как посмотреть таблицу импорта приложения, я в отладчиках очень плохо разбираюсь, хотя немного знаю асемблер. Сейчас у меня стоит олли и IDA. Как в одном из них, лучше в олли, посмотреть эту таблицу???

Спасибо за книжки, но ни одна не открылась. Нажимаю, и пишет что не может отобразить. Можете перезалить???



Ранг: 42.2 (посетитель), 42thx
Активность: 0.040
Статус: Участник

Создано: 21 апреля 2013 16:21
· Личное сообщение · #5

--> Таблица импорта <--

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

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



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

Создано: 21 апреля 2013 16:34
· Личное сообщение · #6

Мда, этих CALL и JMP до фига.

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

Слушаете, а если написать такую DLL, которвая бы выполняла весь функционал d3d9.dll, то есть основной библиотеки DirectX 9, и дописать свой вывод, а затем просто подсунуть свою, вместо настоящей.

Как тогда могут отреагировать анти-читы. И как могут заполить то, что библиотека подменена???



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

Создано: 21 апреля 2013 17:11
· Личное сообщение · #7

всякие античиты перебирают PEB->LdrData на предмет появления лишних dll. Так же может осуществляться сигнатурный поиск в памяти.
Вполне можно подменить d3d9.dll или d3d9_##.dll на свою. И даже не нужно реализовывать функционал. Можно либо скриптами сгенерить заглушки-переходники в оригинал, либо еще лучше использовать сквозной экспорт

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

Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 21 апреля 2013 17:23
· Личное сообщение · #8

vovken1997 достаточно любого изменения оригинального кода (тот же сплайсинг) - и считай спалился. Ведь он не должен меняться если ты не читеришь, правда? В крайнем случае античит просто кикнет с надписью "у вас возможно вирус". Проверить d3d9.dll можно уймой способов, начиная от проверки пути файла длл до проверки по списку "белых" контрольных сумм.



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

Создано: 21 апреля 2013 18:07
· Личное сообщение · #9

Погодите, я не много не доганал на счёт заглушка-переходник и сквозной экспорт. Это как???

Насчёт того же MD5 я понял, но как тогда люди умудряются перехватывать эти долбаные функции???



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 21 апреля 2013 18:15
· Личное сообщение · #10

vovken1997 пишет:
Насчёт того же MD5 я понял, но как тогда люди умудряются перехватывать эти долбаные функции???


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



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

Создано: 21 апреля 2013 18:24
· Личное сообщение · #11

Хах. А класно если не проверяет. Только я не понял откуда мне брать все методы с их параметрами, которые находятся в DLL???



Ранг: 60.6 (постоянный), 87thx
Активность: 0.060
Статус: Участник

Создано: 21 апреля 2013 19:27
· Личное сообщение · #12

vovken1997 пишет:
Погодите, я не много не доганал на счёт заглушка-переходник и сквозной экспорт. Это как???

http://www.codeproject.com/Articles/16541/Create-your-Proxy-DLLs-automatically


 eXeL@B —› Вопросы новичков —› Как вручную реализовать перехват сплайсингом???
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати