1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Бесследное чтение памяти программы

Тема в разделе "WASM.ZEN", создана пользователем LastNoob, 28 дек 2019.

  1. LastNoob

    LastNoob Member

    Публикаций:
    0
    Регистрация:
    28 янв 2018
    Сообщения:
    65
    А если задача не тривиальна и мне нужны координаты соперника?
    Хорошо,что pdfка на русском, сейчас приступлю к изучению, благодарю за материал
     
  2. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    837
    Адрес:
    Россия, Нижний Новгород
    Так как ты в итоге читаешь память? OpenProcess -> ReadProcessMemory? Или сделал в драйвере? Если в драйвере, через что читаешь?
     
  3. LastNoob

    LastNoob Member

    Публикаций:
    0
    Регистрация:
    28 янв 2018
    Сообщения:
    65
    Собираюсь опробывать через маскировки виртуальной ОС плюс
    А вот через драйвер немного облажался
    через DSEFix, кидали ссылку на гитхаб с исходником на первой странице топика
     
  4. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.430
    LastNoob,

    Он имел ввиду что нужен драйвер для реверса.
     
  5. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    837
    Адрес:
    Россия, Нижний Новгород
    DSEFix уже давно во всех античитерских базах. Юзаешь DSEFix - автоматически бан.
    Он наследил и драйвером виртуалбокса, и сам флажок g_CiEnabled давным давно проверяется всеми античитами.
    Пока не выкладываешь в паблик, можешь смело грузить свой драйвер через CreateService -> StartService, детекта не будет.

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

    Когда чит будет готов, думай, как скрыть драйвер от античита - и здесь тебе прямая дорога на unknowncheats, чтобы понять, как почистить следы своего драйвера и как загрузить его незаметно для системы (например, отправлять драйверу запросы через другой драйвер, заполнив какой-нибудь неиспользующийся обработчик IRP твоим каллбэком).

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

    Это вообще как?
     
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.430
    HoShiMin,

    > Когда чит будет готов, думай, как скрыть драйвер от античита - и здесь тебе прямая дорога на unknowncheats

    Такое впечатление как будто это очень крутая техника, прямо как в виксах. В ядре кто первый тапки надел, тот их и носит. А есчо и ссылка на какой то школоборд, я смотрел там походу спецы по ядру; с их вопросами тут бы сразу забанили :rofl:
     
  7. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    837
    Адрес:
    Россия, Нижний Новгород
    На всю огромную аудиторию там всего человек 10-15 разработчиков, которые что-то делают сами. Но зато как делают! Там есть несколько очень интересных техник по подмене памяти.
    А в большинстве... Ну да, иногда их сурсы читать стыдно. Там и на PASSIVE_LEVEL'е сбрасывают cr0.wp (очень распространённый у них способ записать что-то туда, куда записывать нельзя), и просто совершенный ансейф-код, который при любом удобном случае рискует свалиться в бсод.
    Но вот ради тех 10-15 человек и стоит туда заходить, потому что в русскоязычном сегменте ничего подобного не видел.

    Кстати, Indy_, скинули файлики BattleEye из игры PUBG: https://www.dropbox.com/s/syj9j8gyf0m7w8k/battleeye.zip?dl=0
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    5.443
    чекать надо слоты кэша и чрез них можно прикинуть реальный адрес в озу + работа кэша всегда подстраивается под физ. объём озу, а не под мифические теры виртуального адресного пространства :) с тем же aslr всё же МАЛЁХО лукавят == можно канЭшЪ сдурема просеивать теры виртуальных адресов, но цЭ (мягЪко скажу) очень апЪшибочно :grin:
     
  9. LastNoob

    LastNoob Member

    Публикаций:
    0
    Регистрация:
    28 янв 2018
    Сообщения:
    65
    Пока что я сомневаюсь в своих силах... Indy_, у вас не найдется какого-либо материала по теме ассемблера и режима ядра, который понять вполне возможно даже новичку, желательно с кодом?
    ...
    Между прочим, игра запустилась под WM без проблем, как ни странно, сейчас изучаю, как читать физическую память, ибо виртуалка ее как-то иначе хранит...
    Итак, получилось прочитать память виртуалки, крутяк, думаю, какое-то время эта методика вполне себе будет работать, осталось найти многоуровневый указатель на мой адрес и написать скрипт, рассчитываю справиться)

    Но вот навыки работы с драйверами лучше прокачать, есть идейки?)
     
  10. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    837
    Адрес:
    Россия, Нижний Новгород
    Здесь найдёшь по драйверам буквально всё, что тебя интересует:
    http://www.cyberforum.ru/drivers-programming/thread1451904.html
    --- Сообщение объединено, 2 янв 2020 ---
    А в общих чертах можешь описать, как это реализовать? Как, например, узнать, какие страницы есть в кэше, не перебирая их все?
    А если страница не в кэшируемой памяти?
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    5.443
    HoShiMin, доступ к кэшу идёт по топорной функции get_cached_val(given_va)..
    Код (Text):
    1. tag_slot=(given_va mod cache_size)/slot_size;
    2. get_slot_val(tag_slot);
    то бишь доступ к одному и тому же физ адресу в озу может идти по самым разным ва без акой-либо проверки по секуре. Второй момент, еть спекулятива == её реализация мб разной..

    1. она локальна, то бишь включает теневой доступ к кэшу проца и его регистрам (еть стандартная схема).
    2. может иметься доступ к любому физ адресу жестянки.
    ========
    спекулятива нужна для убирания холостого простоя проца, то бишь её эффективность в хаке ограничена длиной теневой цепочки команд. обычно, чтобы увеличить её длину, применяют некую тяжёлую нагрузку на комп (к примеру, тормозят файловыми операциями) и в итоге лаг загрузки актуальных данных в проц сильно разбухает. касательно дма атак, есть забавная писулька..
     
    LastNoob нравится это.
  12. casojatah

    casojatah New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2019
    Сообщения:
    12
    LastNoob, пореверси адреналинбот для ладвы. хотя бы старые версии которые с отломаной подпиской еще гуляют.
     
  13. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    632
    Адрес:
    Russia
    UOPilot и подобные скрипто-выполнители могут справиться? Вроде, даже в Eve Online автоматизировали управление кораблями шахтеров, но это не точно. И незачем прыгать через голову с ядерными читами.
     
  14. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.430
    HoShiMin,

    Я пролистал, там вмп морф. Так как у меня нет девирта, то можно сделать просто - напрямую запустить его код и скормить нужные данные. Просто отобразив образ в юм и передав управление на его входа(на #AV подставить нужные данные). Так частично динамикой можно поработать с этим, но это долго. А есчо никогда норм код так не криптуется ядерный. Что бы провести атаку это нужен весь набор софта, для которого этот драйвер предназначен.
    --- Сообщение объединено, 4 янв 2020 ---
    LastNoob,

    Твоя идея древняя как г-мамонта. Так j00ru & gynvael искали ядерные утечки памяти и повторные дереференсы памяти, что бы провести атаку на ядро и в частности km-disclosure.
     
  15. casojatah

    casojatah New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2019
    Сообщения:
    12
    _edge, UOPilot очень грубо говоря кликер. адрик же работает напрямую с памятью. что позволяет удобно в скриптах рулить большим количеством окон напрямую. читает статы скилы предметы мир всё окружение, есть даже своя карта на которой всё показано и удобно можно строить маршруты и границы, активное окно игры не нужно при этом, главное чтоб был процесс запущен. В сети ломаные версии под старые сервера времен грации, под актуальные - только по подписке. Ну и само собой его время от времени начинают палить, автор своевременно допиливает обход этого дела. Уже оч давно продолжается эпопея)
     
  16. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.430
    UbIvItS,

    Эта ваша таблица по статистике атак не корректна, во первых уязвимости в нт почти всегда описываются и находятся ms(добываются из обновленных модулей поиском изменений после апдейта), а во вторых на линь не проводят атаки, так как эта ось никому не интересна.
    --- Сообщение объединено, 4 янв 2020 ---
    UbIvItS,

    Смотри забавная статистика.

    win32
    Тем 4.957
    Сообщений 44.605
    unix
    Тем 488
    Сообщений 3.853
    4957/488 ~ 10,15
    44605/3853 ~ 11,57

    Разница между количеством тем и ответов 0,87 :sarcastic:

    Знакомое число. Это не учитывая что один раздел по линям обьединяет все остальные тут, наверно нужно числа помножить на порядок. И это без учёта содержимого, там всегда какая то примитивная дичь типо вызова прерываний аналогичных дос. Вот и скажи к чему твоя таблица и кто её сделал.
     
  17. HoShiMin

    HoShiMin Active Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    837
    Адрес:
    Россия, Нижний Новгород
    Цена атаки на датацентр и на домашнего пользователя немного разная.
    А в датацентрах повсеместно линукс.
    По линуксу здесь мало тем, потому что форум не той тематики: там нечего реверсить.
    На сисадминских форумах картина другая - никто не админит под виндой. Исключение - сети предприятий с ActiveDirectory.
     
    UbIvItS нравится это.
  18. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.108
    Суждения Инде как всегда оторваны от реальности чуть более чем полностью, ничего нового.
    --- Сообщение объединено, 4 янв 2020 ---
    Эта кстати очень хорошо в том плане, что я могу спокойно себе сидеть на десктопном линуксе, не перекручивая сам себе яица всяческими аверами и другим бредом, который призван защитить мою систему от уничтожения скрипт киддисами.
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    5.443
    очень даЖЬ наоборот == пущай прыгают.. акь минимум любопытна будет динамика развития античитов :)
    --- Сообщение объединено, 5 янв 2020 ---
    возможность теневых атак не относится к багам софтухи и багам вообще == это принцип работы современных жестянок. И в обозримом будущем его никто менять не станет, ибо секурные жестянки не менее, чем в 10 раз медленней гламурных/играчных. Тебе покажи секурную жестянку и ты заплачешЪЪЪ :laugh1::laugh2::laugh3:
    --- Сообщение объединено, 5 янв 2020 ---
    если выньку блокировать от прямого доступа к инету, то с ней можно дружить не менее безопасно, чем с линем. + по чесноку, вынь гораздо более развитый десктоп и едва ль линь достигнет такого уровня.. увы и ах, развивать линь-десктопы для корпи сейчас не выгодно. А новомодная зрада с облачными десктопами может сильно ударить по гуям линя.
     
  20. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    4.108
    Ну до тех пор, пока кто-нить другой в локальной сети не словит какое-то гуано и тебя не прохакают каким-нить удаленным сплойтом или просто не зайдут на твой комп админом домена, пароль от которого собрали контроллера.
    --- Сообщение объединено, 5 янв 2020 ---
    Ну да, но мне как девелоперу вполне хватает, понятно, что некий специализированный софт вероятно не будет иметь альтернативу под линукс и не заведется под вайном, но в целом десктопы линуксовые сейчас довольно неплохие. Я уже давно сижу на линуксах и не жаьуюсь.
    --- Сообщение объединено, 5 янв 2020 ---
    И кстати сейчас отключать венду от инета уже не так удобно, например у тебя на ней сидит девелопер, вне зависимости от того, на чем он разрабатывает, ему нужен доступ к библиотекам, а руками их качать (на машине с интернетом) со всеми зависимостями и переносить на машину без интернета - слишком много неприятной работы. А заводить себе в локальной сети зеркала для всех нугетов, нпмов, пипов, мейвенов и тд тож не особо хочется никому.