Хук функции рандом

Тема в разделе "WASM.HEAP", создана пользователем ring4, 13 янв 2012.

  1. ring4

    ring4 New Member

    Публикаций:
    0
    Регистрация:
    19 ноя 2006
    Сообщения:
    279
    hi2all
    есть ли рабочие примеры подмены сгенерированного значения рандома? под вынь ХР, иль 7?
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    щито?
     
  3. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
     
  4. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Псевдослучайные генераторы могут быть очень разными, поэтому разберитесь какую функцию Вам нужно перехватить,
    и перехватывайте ее обычным способом (перехват функций тема изъезженная)
     
  5. ring4

    ring4 New Member

    Публикаций:
    0
    Регистрация:
    19 ноя 2006
    Сообщения:
    279
    да эт ясно, читал статьи Ms-Rem когда он еще был жив. просто думал есть уже готовые примеры хука рандома дельви функции, да хоть любого языка, многие же виндовые вызовы используют. думал есть уже что универсальное. бум думать
     
  6. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    на сколько я помню у delphi random не импортируемая функция, она встраивается в саму программу, так-что Вы можете просто для конкретной программы эту функцию найти и переписать код, или переменную которая используется для последующей итерации.
     
  7. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Не забудьте помянуть его :)
     
  8. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    вот моя функция рэндом

    Код (Text):
    1. UINT Random_uint16()
    2. {
    3.   RandSeed = (214013* RandSeed +2531011);
    4.  
    5.   return (RandSeed >> 16);
    6. }
    могу ещё 100 таких написать и ни одну не будет похожа на предыдущую, ring4, как ты их перехватишь? понял суть? рэндом функция это не CreateFile и не OpenProcess, это креатифф прогера
     
  9. PSR1257II

    PSR1257II New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2011
    Сообщения:
    228
    rpy3uH

    Если вы делаете srand от time() то перехват GetLocalTime сделает ваш "random" константной последовательностью. Поэтому идет (в защитах) паранойя типа rdtsc.
     
  10. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    ну это понятно. я даже статью про это напейсал http://pblog.ru/?p=861
     
  11. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    PSR1257II
    Чтение тск можно отследить(Cr4.TSD). Через сисколы также.
     
  12. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Вообще, есть RtlGenRandom, не надо никакого GetLocalTime и RDTSC.
     
  13. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    вот её и хочет перехватить топикстартёр
     
  14. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    rpy3uH
    Ну из его поста непонятно что он хочет.
     
  15. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    Смотрите как в сорцах дисккриптора сделан рандом (энтропия общая просто огромная) - там есть все возможные методы. ну или почти все.
     
  16. PSR1257II

    PSR1257II New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2011
    Сообщения:
    228
    Malfoy

    А это реально работает? Я давно потратил часов 6 на это но исключения так и не удалось наблюдать. Может это не для всех CPU?
     
  17. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    PSR1257II
    Что я вам могу ответить. Сам я это не юзаю, может быть когдато давно и проверял(когда я начинал изучать x86 и NT я юзал всякие извращения для проверки манов и своих идей, но это было так давно, что я не могу даже сказать юзал я это или нет). Когдато я даже вроде задавал вопрос про отслеживание тск, хотя не уверен. Вы поймите меня, я каждый день перевариваю стока инфы, что спустя года я не могу вспомнить что было.
    В манах я недавно смотрел, перед ответом тс, хотя я и знал, но чтобы убедиться и не допустить ошибки, которая введёт в заблуждение человека. Я так всегда поступаю. Это к стати позволяет их запомнить, фактически я занаю их наизусть.
    Что касается вашего вопроса - мы можем это проверить. Элементарная загрузка своего шлюза. Думаю никаких проблем не будет(или небыло ?). Для написания движка мы можем найти KiDebugRoutine и обработать фолт, это примитивно.
     
  18. PSR1257II

    PSR1257II New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2011
    Сообщения:
    228
    Malfoy

    В то время когда я это делал я делал это с softice+win98, только так я мог получить полный контроль над системой. Далее я грузил sys который поставит этот флажок/или патчил из ice'а и из user32 (потом я пытался вроде и в r0) вызывал rdtsc. Вначале вроде были исключения но я перепроверил и нашел что это была моя ошибка. Все мои последующие проверки ничего не дали. Так что проверить я щас это прямо не смогу, мне нужно будет некоторое время (на освоение как это сделать в xp), я тут извиняюсь.

    Если я правильно помню, нужно ожидать 0xD? Или #UD? Уже забыл :dntknw:
     
  19. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    PSR1257II
    #GP будет. Немного протрезвею, закодю сие в виде двигателя. В принципе есть тонна кода готового.
     
  20. PSR1257II

    PSR1257II New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2011
    Сообщения:
    228
    Malfoy

    Ok, было бы интересно! - это пытались юзать как средство от защит.