Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 19.02.2013, 23:15   #1
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Эзотерическое программирование ч. 1.5

Эзотерическое программирование ч. 1.5
Whitemagic — библиотека написанная в конце 2009 года, пользователем портала gamedeception.net Apoc'ом. В основе фреймворка лежит код другой библиотеки пользователя этого-же портала — Shynd'а. Благодаря этим «адептам тайных знаний» мы имеем инструмент способный:
Читать и редактировать память.
Получать указатели на функции по их индексу в vtable
Использовать паттерн менеджер, для быстрого поиска кода по его сигнатуре
Использовать менеджер патчей, позволяющий элегантно применять патчи, и так же элегантно их отменять
И последняя в очереди, но не последняя по значимости фича — это Detour менеджер, позволяющий буквально играючи ставить хуки на функции, или так же легко их снимать.

Исходники лежат на гитхабе
[Ссылки могут видеть только зарегистрированные пользователи. ]

Следующая статья будет об использовании белой магии и хуке D3DEndScene, для рисования в окне приложения.
Затравочка:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

PS Понятия не имею когда будет написана следующая часть, ибо я столкнулся с немыслимой задачей — описанием интерфейса универсального инжектора, ну не люблю я писать код формочек.
PPS Эх, слишком короткий пост получился, мне стыдно :shame:
________________
Talk is cheap. Show me the code
— Linus Torvalds

Последний раз редактировалось Yukikaze; 19.02.2013 в 23:26.
  Ответить с цитированием
6 пользователя(ей) сказали cпасибо:
chemodanchik (28.01.2015), крайслер (20.02.2013), object (26.02.2013), Sinyss (20.02.2013), Skilful (10.10.2013), warl0ck (20.02.2013)
Старый 21.02.2013, 23:02   #2
 Пехотинец
Аватар для megweg
 
megweg скоро будет известенmegweg скоро будет известенmegweg скоро будет известенmegweg скоро будет известенmegweg скоро будет известен
Регистрация: 28.12.2009
Сообщений: 75
Популярность: 427
Сказал(а) спасибо: 19
Поблагодарили 38 раз(а) в 23 сообщениях
Отправить сообщение для megweg с помощью Skype™
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

А хоть немного подробнее мож написать ?
  Ответить с цитированием
Старый 21.02.2013, 23:16   #3
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от megwegПосмотреть сообщение
А хоть немного подробнее мож написать ?

напиши что тебя именно интересует
  Ответить с цитированием
Старый 22.02.2013, 09:23   #4
 Пехотинец
Аватар для megweg
 
megweg скоро будет известенmegweg скоро будет известенmegweg скоро будет известенmegweg скоро будет известенmegweg скоро будет известен
Регистрация: 28.12.2009
Сообщений: 75
Популярность: 427
Сказал(а) спасибо: 19
Поблагодарили 38 раз(а) в 23 сообщениях
Отправить сообщение для megweg с помощью Skype™
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от YukikazeПосмотреть сообщение
белой магии и хуке D3DEndScene

Как обратится к данному элементу
  Ответить с цитированием
Старый 22.02.2013, 09:59   #5
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

если в двух словах, то нужно получить указатель на функцию EndScene
Код:
EndScenePointer = Magic.Instance.GetObjectVtableFunction(dxvtable, VMT_ENDSCENE);
dxvtable можно вытащить из экземпляра класса Device используя SlimDX или расковыряв класс System.Window.Form
Второй вариант для хука пойдет, но вот на счет рисования не уверен, ибо надо будет получить девайс из указателя, а без slimdx это вряд ли получится.

Дальше нужно создать делегат
Код:
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate int EndSceneDelegate(IntPtr device);
и зарегистрировать его
Код:
_endScene = Magic.Instance.RegisterDelegate<EndSceneDelegate>(EndScenePointer);
Теперь когда мы имеем делегат мы можем ставить хук
Код:
Magic.Instance.Detours.CreateAndApply(_endScene , new EndSceneDelegate(EndSceneHook), "EndScene");
Курсивом выделен метод на который ставится хук, а жирным выделен обработчик хука
Остается только в методе обработчике вызвать оригинальную функцию

Код:
private static int EndSceneHook(IntPtr device)
{
    //В этом методе можно начинать рисовать, но я пробрасываю событие дальше, что бы не захламлять код
    // Рисовать нужно в Device d = Device.FromPointer(device);
    lock (_frameLock)
    {
        if (OnFrame != null)
            OnFrame(null, new D3DEventArgs(device));
    }
    return (int)Magic.Instance.Detours["EndScene"].CallOriginal(device);
}
алсо, пытался в ла2 хукнуть AddNetworkQueue, но пока что не вышло, там нужно править регистры. Вообще надо будет попробовать побайтно записать функцию где ни будь в памяти и зарегистрировать на нее делегат
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
крайслер (23.02.2013), megweg (22.02.2013)
Старый 02.07.2013, 12:43   #6
 Разведчик
Аватар для Буянь
 
Буянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражанияБуянь блестящий пример для подражания
Регистрация: 05.03.2011
Сообщений: 20
Популярность: 1883
Сказал(а) спасибо: 13
Поблагодарили 44 раз(а) в 36 сообщениях
Отправить сообщение для Буянь с помощью Skype™
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от YukikazeПосмотреть сообщение
Следующая статья будет об использовании белой магии и хуке D3DEndScene, для рисования в окне приложения.

Извините, а всякие FRAPSы похожими методами показывают FPS в приложениях?
  Ответить с цитированием
Старый 02.07.2013, 13:32   #7
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Буянь, в точку, именно так, только не на шарпе
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Пользователь сказал cпасибо:
Буянь (02.07.2013)
Старый 02.10.2013, 09:25   #8
Заблокирован
 Разведчик
Аватар для alex_kg
 
alex_kg неизвестен в этих краяхalex_kg неизвестен в этих краяхalex_kg неизвестен в этих краях
Регистрация: 09.09.2012
Сообщений: 11
Популярность: -287
Сказал(а) спасибо: 1
Поблагодарили 14 раз(а) в 14 сообщениях
Отправить сообщение для alex_kg с помощью ICQ Отправить сообщение для alex_kg с помощью Skype™
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от YukikazeПосмотреть сообщение
Буянь, в точку, именно так, только не на шарпе

как я понемаю то на шарпе тоже можно сделать показ FPS? если да то не подскажите как ?
  Ответить с цитированием
Старый 03.10.2013, 15:27   #9
Заблокирован
 Сержант
Аватар для igorfirefox
 
igorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нацииigorfirefox гордость нации
Регистрация: 29.08.2010
Сообщений: 115
Популярность: 2701
Сказал(а) спасибо: 75
Поблагодарили 80 раз(а) в 59 сообщениях
Отправить сообщение для igorfirefox с помощью Skype™
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от alex_kgПосмотреть сообщение
как я понемаю то на шарпе тоже можно сделать показ FPS? если да то не подскажите как ?

Читаем тему, прежде чем задать вопрос.

Цитата:
Сообщение от БуяньПосмотреть сообщение
Извините, а всякие FRAPSы похожими методами показывают FPS в приложениях?

Цитата:
Сообщение от YukikazeПосмотреть сообщение
Буянь, в точку, именно так, только не на шарпе

  Ответить с цитированием
Старый 03.10.2013, 22:16   #10
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от igorfirefoxПосмотреть сообщение
Читаем тему, прежде чем задать вопрос.

Осознаем что были не правы...
На шарпе можно написать всё что угодно. В конце концов можно из шарпа вызвать нужный код на плюсах...
  Ответить с цитированием
Старый 08.09.2014, 23:03   #11
 Разведчик
Аватар для Lazizbek
 
Lazizbek никому не известный тип
Регистрация: 08.09.2014
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Если что, чисто C#.
Изображения
Тип файла: jpg Снимок.JPG (18.2 Кб, 43 просмотров)
  Ответить с цитированием
Старый 09.09.2014, 00:35   #12
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Эзотерическое программирование ч. 1.5

Цитата:
Сообщение от LazizbekПосмотреть сообщение
Если что, чисто C#.

Раз уж пошла такая пьянка, тоже, если что, чисто C#
[screen]
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Эзотерическое программирование ч.1 Yukikaze C# 2 20.10.2014 15:06
[Прочее] Программирование Slavon92 Халява для Читера 4 03.12.2012 02:39
[Обсуждение] Программирование Omg>it's<Unreal Общение и обсуждение 36 17.12.2011 23:35
[Помогите!] Программирование Destroyer74 Общение и обсуждение 9 13.08.2010 17:46

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:50.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net