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

uhx

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

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

  • Посещение

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

    9

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

  1. Так или иначе, мне кажется это просто не вырезанные приколюхи с готовых движков. Вот и все. А фпс в какую сторону?)) У меня например в QC че-то подлагивает, не знаю в чем беда.
  2. Я думаю это осталось от Doom 4. Движок ведь тот же.
  3. Там же в главном меню снизу-слева есть "контакты". Там можно искать
  4. Ну, если будет желание че-то поковырять, то зови и добавляй uhxx ( сраные лимиты на > 3 символов ник ) Посмотрим можно ли как-то вместе дуэль запустить
  5. А ведь мы по идее можем зайти в дуэль и сидеть ковырять игру, так?
  6. partoftheworlD, не, у меня вместо этого было просто черное окно)) При чем оно реагировало на мышку ( курсор менялся когда наводился на кнопки ) и тд, но картинки не было.
  7. Короче... если у кого лаунчер тоже черный, ставьте на BethesdaNetUpdater.exe совместимость с Windows Vista ( пакет обновления 2 )
  8. Забрал. Спасибо! Давно жду Quake) Лаунчер пока не работает их, или как?) У меня там просто черное окно.
  9. Дык этот чувак пишет на шарпе, и у него там "как внешний чит". Он вообще из этой темы пришел: Поэтому я по его подобию сделал, как у него там примерно. Так то ясен фиг проще дллку закинуть и через нее вызывать, чем внедрять опкоды и выполнять их через CreateRemoteThread
  10. Ну чувак... блин. Че за фигня? На C++ это выглядело бы примерно так: BYTE call[] = { 0xE8, 0x00, 0x00, 0x00, 0x00, /* call relative address */ 0xC3 }; /* ret */ // VirtualAllocEx LPVOID pAlloc = VirtualAlloc( NULL, sizeof( call ), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE ); if( pAlloc != NULL ) { // Патчим наш адрес *(DWORD*)( call + 1 ) = (DWORD) foo - ( (DWORD) pAlloc + 5 ); // Тут заменить на WriteProcessMemory memcpy( pAlloc, call, sizeof( call ) ); CreateThread( NULL, NULL, (LPTHREAD_START_ROUTINE) pAlloc, NULL, NULL, NULL ); VirtualFree( pAlloc, NULL, MEM_RELEASE ); } В моем случае foo это просто тестовая функция. Код проверил, все работает. Удачи.
  11. Та я блин тоже сначала проглядел. Пришлось стирать то, что настрочил. На счет дальних переходов я не знаю. Я справочники по асму читать не умею)) Но насколько я понял, для дальнего перехода нужно использовать FF. Ибо 9A требует адрес в операнде)
  12. relativeAddress = function_address - ( hAlloc + 10 ) Почему 10? Потому что там заканчивается инструкция прыжка. И оттуда мы должны считать его. Посчитали? Теперь записывай relativeAddress вместо твоего адреса прыжка. Т.е. после 0xE8
  13. Хрень в том что 0xE8 принимает тоже относительный адрес (call near), как и 0xE9. Который он хардкодит) А относительный адрес надо выстраивать относительно адреса инструкции, с которой происходит прыжок.
  14. Напрмер, если Вы сделаете прыжок на 00 00 00 00, то он попадет на Ваш же ret (C3), который находится прямо после прыжка. Если зададите прыжок на -5, то поток зациклится на этом же прыжке) В этом весь jump near. В jump far же абсолютная адресация, но он и больше. Вроде 6 байт, не помню.
  15. В Вашем случае используется относительный прыжок ( relative jump, jump near... ), т.е. опкод E9. Т.е. если Вы скажете ему прыгнуть на 0x05, то это значит что он прыгнет на 5 ячеек вперед. Относительно окончания этой инструкции. Так как память (VirtualAlloc) выделяется в случайном месте, то значит и прыжок надо пересчитывать. Чтоб он прыгал на адрес вашей функции, а не хрен пойми куда. А вообще используйте в таком случае call, а не jmp... как Вам советовал @srg91 Или используйте jump far, раз Вам так нравятся прыжки. Погуглите, а то времени мне не хватит с телефона все напечатать
  16. У тебя прыжок 0xE9. Память выделяется в произвольном месте. Сечешь о чем я? Тебе надо пересчитывать адрес прыжка относительно адреса, который тебе отдает VirtualAlloc. Я говорю про эти байты. Не забывай так же, что прыжок строится относительно адреса следующей инструкции. Этот занимает 5 байт, значит их и прибавляй.
  17. Если честно, то ничего не понятно) В чем тогда проблема? Какой еще отдельный код? О чем речь?
  18. Пиши свой WPM/RPM драйвер через MmCopyVirtualMemory (недокументированная функция). Сам драйвер грузи через dsefix/аналог, если тебе его нечем подписать. Это отдельный софт, использует какую-то там уязвимость с другим драйвером, которая позволяет отключить проверку подписи драйверов, потому что отключить своими руками ее нереально. Или найди другой какой способ, чтобы загрузить DLL в процесс игры. SetWIndowsHookEx вроде как не катит. Вообще по этому поводу много обсуждений на том же UC. Так или иначе, лучше ищи способы для внедрения DLL ( пусть и в связке с драйвером ), потому что экстернал это убого, а вместе с драйвером еще и не всегда надежно ( лично я раз двадцать по ходу разработки ловил синий экран ) А вообще, если я не ошибаюсь, уже есть парочка готовых жирных драйверов типа BlackBone, хотя их я думаю могут детектить, поэтому лучше просто посмотри на их сурсы и напиши свой.
  19. Никто никого и не обижает) Статья классная, безусловно, я просто немного дополнил ТСа, пояснив что эта вещь в общем и целом называется calling convention. Ну еще речь шла о том что возможно из-за столь подробного описания стоит перенести тему в раздел для новичков.
  20. Да не парься)) Если раньше не встречалось - значит не особо и нужно было. Мне например просто в свое время стало интересно, как вызовы происходят и все такое. Тот же printf в OllyDbg разглядывал сидел, а потом только прочитал про CC. Разберешься, куда деваться)
  21. Согласен)) А вообще гуглите calling convention, если до сих пор что-то не понятно. Это обычное согласование о вызове, я даже немного удивлен что люди, которые нехило так продвинуты в RE не знают об этом) Именно из за этого согласования у нас практически всегда адрес нашего класса лежит в ecx ( в начале функции он может перекладываться в какой-нибудь другой регистр, но не суть ). add esp (cdecl) обычно используется после вызова функций, у которых неопределенное количество аргументов. Ну, например тот же printf в Си. А в остальных случаях используется обычно stdcall и thiscall, при которых функция сама через ret чистит стек, так как знает сколько аргументов она принимает.
  22. Свободен. Я смотрю ты людям за деньги любишь помогать, а как самому что-то загуглить надо, так сразу на форум бежишь темку создавать, типа, помогите мне. Просто мерзко от таких становится. Человек просит помочь и создает запрос на специализированном форуме, а его в раздел "платные запросы" направляют. Давай тебя туда же посылать? Не смог что-то сделать? Иди пиши в раздел "платные запросы". Форум целиком и полностью держится на энтузиастах, которые готовы помогать людям в свое свободное время, и заметь, никто из них не требует денег за свою помощь.
×
×
  • Создать...

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

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