Перейти к содержанию

DaVilka

Пользователи
  • Постов

    43
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент DaVilka

  1. Получится, но чтобы не парится с поиском можно хукнуть функции BeginScene(начало отрисовки) или EndScene(конец отрисовки) и между ними рисовать как в своем приложении, но для начала тебе нужно получить директикс девайс процесса, так как девайс может быть только один на процесс, на пример хукнув функцию CreateDevice. Адреса не экспортируемых функций директикса можно получить просто создам свое приложение которое будет юзать твою функцию директ икса, в девятом диретк иксе на пример CreateDevice == Direct3DCreate9Ex + 0x16139, EndScene == Direct3DCreate9Ex + 0x15ACA Но на счет перекрывания не уверен, но скорее всего тебе понадобятся матрици как минимум мировая И это если твое приложение использует сугубо функции директ икса, если же какой то движок то все гораздо сложнее
  2. Ты не выведешь другое окно поверх первого если первое находится в полноэкранном режиме без жесткого вмешательства в процесс игры. Своим кодом ты просто запускаешь новый процесс. Простой вариант - запустить первую игру в оконном режиме, убрать рамку и масштабировать в расширение экрана и уже по верх него запускать другое окно, но опять же в виндовсе может быть активным только одно окно.
  3. Там как будто не хватает еще одного файла, функции объявлены но не инициализированы
  4. Там надо компилировать в Release что бы вектор не ругался, а так там еще объявлены функции но не прописаны их реализации, у меня компилятор не хавает
  5. Разобрался, выкинь этот сурс либо пробуй компилировать в 17 студии(я так понял он под нее делался?)
  6. Функция шаблон не может возвращать интовое значение (мб в 17 студии что то изменилось хз), смени return 0; на return x; оно не на что не влияет, но у меня все равно не скомпилировалось как будто какой то либы не хватает
  7. Смени в настройках проекта кодировку на мультибайтовую либо смени все char на wchar_t и функции на юникодные тут наверное должно быть addr += vect[i];
  8. char patch[10240] = ""; GetCurrentDirectory(10240, patch); sprintf(patch, "%s\\%s", patch, "config.ini"); char tstr[32]; GetPrivateProfileString("General", "WallHack", NULL, tstr, sizeof(tstr), patch); printf(" %s" , tstr);
  9. Собственно сабж, как получить координаты отдельной текстуры? Вот с помощью хука DrawIndexedPrimitive можно подсветить одинаковые текстуры, и сделать вх. А как подсветить, на пример, первую текстуру из десяти одинаковых? И если я хочу написать возле нее текст, то как узнать ее координаты, что бы при смене положения камеры, надпись находилась рядом из текстурой? И еще один вопрос, вот на окне игры выводится текст, как узнать его координаты? Есть идея, хукнуть CreateFont, сохранить указатели на все создаваемые фонты, а потом на каждый фонт поставить хук на DrawText, и уже из него выдерать rect, может есть способ менее геморный?
  10. аа, а как это поможет? Вообще, нужно отлаживать, смотреть на что и как реагирует валв, да и если верить посту тса, то он не знает, будет ли вообще реагировать вак? Для директа, как варик, можно юзнуть враппер
  11. он имел ввиду понижать кольцо ) ring3 или нулевое, но в нулевом, на скоко я знаю, без асм не обойтись
  12. окей, возник второй вопрос, пытаюсь перехватить вызов меседжбокса поставил я бряки на dr7/0, запили функцию которая отлавливает исключения Исключение отлавливается, но после отработки этой функции процесс отваливается если возвращать EXCEPTION_CONTINUE_SEARCH, если EXCEPTION_CONTINUE_EXECUTION то функция перехвата исключений вызывается до бесконечности. Я так понял, что неполадка в возврате управления, но как его вернуть? Перед вызовом EXCEPTION_CONTINUE_EXECUTION нужно снимать хук из меседжбокса?
  13. Собственно сабж, возмож но ли подключить отладчик из под длл внутри процесса? На первый взгляд мне показалось что ничего сложного, но функция DebugActiveProcess замораживает все потоки, в том числе и тот, и которого вызывается, в итоге она не срабатывает.
  14. Ааа, PAGE_GUARD не смогу поставить, защита не дает, а PAGE_NOACESS можно перехватывать?
  15. Хочу сделать аналог Stealthedit на C++, но не могу понять как она работает, разжуйте плиз основной принцип )
  16. Можно поднять межпроцессное взаимодействие, я поднимаю сокет, так как у меня много функций, но можно и пайп, и вызывать что угодно, когда угодно, сколько угодно, откуда угодно Если в длл одна мелкая функция, то и длл можно не подгружать, вписать в процессе в свободное место по статическому смещению свою функцию, и через тот же удаленный поток вызвать функцию уже по известному адресу
  17. Впервые слышу о таких функциях. Заморозить процесс можно при помощи NtSuspendProcess, но она вроде как до XP винды работает. На винде повыше заморозить процесс нельзя, а можно , как сказал человек выше, заморозить все потоки процесса в том числе и главный, но после его разморозки ты можешь получить побочные эффекты
  18. ID всегда равен 1 байт, он пишется из al по адресу 6BB6DFA0, ecx == 00000000 Дальше идет тело, dword( 4 байта) -> dword -> dword -> dword -> char(1байт всегда равен 00 хз почему его не записало Во второй инстукции, где пишется eax, ecx == 00000001 Собственно а как щас пишет, 4 байта eax?
  19. По адресу 6BB6DFA0 находится буфер, в который пишутся байты в зависимости от их размера. Я ставлю бряк на запись по этому адресу и получаю вот это С асм я знаком только в общих чертах, по этому не могу понять что здесь происходит? Байты идут по адресу 6BB6DFA0++ то есть 6BB6DFA1->6BB6DFA2->6BB6DFA3 ... Первый байт - ид пакета, дальше тело. На скрине записывается пакет в 18 байт. Но не понятна инструкция, получается, ecx = 01234567(на пример) и, с каждым байтом ecx увеличивается на пару байт, и прибавляется статический адрес 6BB6DFA0? Но почему тогда вызывается всего 5 раз, если пакет 18 байт, то и вызывается должно же 18 раз?
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.