HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 08.07.2021, 14:48
Fott
Флудер
Регистрация: 28.06.2019
Сообщений: 3,442
С нами: 3619995

Репутация: 168


По умолчанию

Цитата:
Сообщение от Akat  

Дайте ссылку на 1 тему, я не могу найти
Гайд - Создание ASI-плагина с нуля [1]

Делать мне было нечего, а работать не хотелось, поэтому вы видите этот гайд Создание ASI-плагина с нуля Хуки – что это такое и как с ними работать Безопасная инициализация и работа с SAMP Работа с рендером и Directx9 Обработка событий окна + ImGui В этом гайде мы создадим свой ASI-плагин с...

www.blast.hk
 
Ответить с цитированием

  #12  
Старый 05.03.2022, 05:48
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Сложно очень... 🙁
 
Ответить с цитированием

  #13  
Старый 05.03.2022, 17:29
x0r1x
Участник форума
Регистрация: 12.02.2022
Сообщений: 112
С нами: 2238751

Репутация: 48
По умолчанию

Цитата:
Сообщение от Yuriy Code  

Сложно очень... 🙁
это легко, просто луашеру который до этого вызывал функции, будет не просто их писать
 
Ответить с цитированием

  #14  
Старый 10.09.2022, 11:55
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Цитата:
Сообщение от kin4stat  

Код:





Код:
.text:10067460 000 55 push ebp
.text:10067461 004 56 push esi
.text:10067462 008 8B E9 mov ebp, ecx
.text:10067464 008 57 push edi


И видим что у нас тут 4 опкода занимающих ровно 5 байт. Но если вам не повезет как тут, то нужно брать в большую сторону.
Например тут, нужно будет взять 6 байт.
Как ты узнал, что опкоды по 5 байт?

Расскажи, как ты посчитал это. Ибо, вообще нихуя не понятно.
 
Ответить с цитированием

  #15  
Старый 10.09.2022, 12:13
RazorRw
Флудер
Регистрация: 16.09.2019
Сообщений: 2,013
С нами: 3505395

Репутация: 183


По умолчанию

Цитата:
Сообщение от Yuriy Code  

Как ты узнал, что опкоды по 5 байт?
Расскажи, как ты посчитал это. Ибо, вообще нихуя не понятно.
там же написаны байты. 0x55, 0x56, 0x8B, 0xE9, 0x57 и всего их 5 в этом отрезке кода
 
Ответить с цитированием

  #16  
Старый 10.09.2022, 12:14
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Цитата:
Сообщение от Heroku  

там же написаны байты. 0x55, 0x56, 0x8B, 0xE9, 0x57 и всего их 5 в этом отрезке кода
Сложнооооооооооооо... ☹️😫
 
Ответить с цитированием

  #17  
Старый 10.09.2022, 12:48
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

Цитата:
Сообщение от Yuriy Code  

Сложнооооооооооооо... ☹️😫


не дописал, четвёртый*
 
Ответить с цитированием

  #18  
Старый 10.09.2022, 14:55
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Цитата:
Сообщение от F0RQU1N and  

не дописал, четвёртый*
Да я уже понял, но, всё-равно сложно очень.
 
Ответить с цитированием

  #19  
Старый 11.09.2022, 20:25
Yuriy Code
Постоянный
Регистрация: 01.05.2021
Сообщений: 752
С нами: 2650753

Репутация: 98


По умолчанию

Цитата:
Сообщение от kin4stat  

uintptr_t OriginalFunction = *reinterpret_cast(HookAddress + 1) + HookAddress + 5;
Что за дичь...

Зачем ты сложил адрес хука???

HookAddress + HookAddress... ЗАЧЕМ??? Если нужно вычесть. Но, Киня же сделал зачем-то наоборот...

Как мне быть, если я ничего не понимаю... 😭
 
Ответить с цитированием

  #20  
Старый 13.09.2022, 18:26
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

Цитата:
Сообщение от Yuriy Code  

Что за дичь...
Зачем ты сложил адрес хука???
HookAddress + HookAddress... ЗАЧЕМ??? Если нужно вычесть. Но, Киня же сделал зачем-то наоборот...

Как мне быть, если я ничего не понимаю... 😭
так, для начала хватит давать эти уебищные прозвища, заебал и не только меня. итак, к делу:

опкод jmp, размер которой 5 (x86), прыгает на определенное место в коде и она является релативной, то есть на сколько прыгнуть ПОСЛЕ себя.

например ты на адрес 10 и тебе надо прыгнуть на адрес 20. чтобы это сделать воспользуемся jmp. подводя итог прошлому абзацу, после инструкции jmp адрес будет 15 (т.к её размер 5) соотвественно нам нужно прыгнуть еще на 5. как это вычислить математически? jmp {куда надо}20-{откуда}10-{размер инструкции}5=5, то есть jmp 5.

так же работает и call, но она делает ещё несколько действий кроме прыжка.

с этим разобрались.

теперь, то что ты процитировал, kin4stat берет адрес оригинальной функции (для дальнейшего её вызова чтобы не прерывать flow программы) из существующей инструкции call/jmp (не читал контекст).

пользуясь знаниями из прошлого абзаца, зная как устроена инструкция jmp (JMP ADDR), то на 0 месте находится опкод, а на 1-4 сам РЕЛАТИВНЫЙ адресс.

возьмем пример из прошлого абзаца: jmp 5 на адресе 10, соотвественно после этой инструкции программа будет на адресе 20, его нам и нужно достать.

addr = {размер прыжка}5+{текущий адрес}10+{размер инструкции jmp}5=20.

мы добавляем 5 т.к jmp берет за основу адрес после самой себя, поэтому при её построение мы отнимаем (т.к эти байты нам прыгать не надо), а при возвращение оригинального адреса мы их добавляем.

вроде все понятно, не перечитывал да и по***
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.