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

Discussion in 'WASM.HEAP' started by ring4, Jan 13, 2012.

  1. ring4

    ring4 New Member

    Blog Posts:
    0
    Joined:
    Nov 19, 2006
    Messages:
    279
    hi2all
    есть ли рабочие примеры подмены сгенерированного значения рандома? под вынь ХР, иль 7?
     
  2. K10

    K10 New Member

    Blog Posts:
    0
    Joined:
    Oct 3, 2008
    Messages:
    1,590
    щито?
     
  3. _Juicy

    _Juicy Active Member

    Blog Posts:
    0
    Joined:
    Aug 12, 2003
    Messages:
    1,159
    Location:
    SPb
     
  4. h0t

    h0t Member

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

    ring4 New Member

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

    h0t Member

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

    Magnum New Member

    Blog Posts:
    0
    Joined:
    Dec 29, 2007
    Messages:
    925
    Не забудьте помянуть его :)
     
  8. rpy3uH

    rpy3uH New Member

    Blog Posts:
    0
    Joined:
    Sep 14, 2006
    Messages:
    503
    вот моя функция рэндом

    Code (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

    Blog Posts:
    0
    Joined:
    Jun 25, 2011
    Messages:
    228
    rpy3uH

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

    rpy3uH New Member

    Blog Posts:
    0
    Joined:
    Sep 14, 2006
    Messages:
    503
    ну это понятно. я даже статью про это напейсал http://pblog.ru/?p=861
     
  11. Malfoy

    Malfoy New Member

    Blog Posts:
    0
    Joined:
    Jan 2, 2012
    Messages:
    698
    PSR1257II
    Чтение тск можно отследить(Cr4.TSD). Через сисколы также.
     
  12. K10

    K10 New Member

    Blog Posts:
    0
    Joined:
    Oct 3, 2008
    Messages:
    1,590
    Вообще, есть RtlGenRandom, не надо никакого GetLocalTime и RDTSC.
     
  13. rpy3uH

    rpy3uH New Member

    Blog Posts:
    0
    Joined:
    Sep 14, 2006
    Messages:
    503
    вот её и хочет перехватить топикстартёр
     
  14. K10

    K10 New Member

    Blog Posts:
    0
    Joined:
    Oct 3, 2008
    Messages:
    1,590
    rpy3uH
    Ну из его поста непонятно что он хочет.
     
  15. newbie

    newbie New Member

    Blog Posts:
    0
    Joined:
    Dec 2, 2008
    Messages:
    1,246
    Смотрите как в сорцах дисккриптора сделан рандом (энтропия общая просто огромная) - там есть все возможные методы. ну или почти все.
     
  16. PSR1257II

    PSR1257II New Member

    Blog Posts:
    0
    Joined:
    Jun 25, 2011
    Messages:
    228
    Malfoy

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

    Malfoy New Member

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

    PSR1257II New Member

    Blog Posts:
    0
    Joined:
    Jun 25, 2011
    Messages:
    228
    Malfoy

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

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

    Malfoy New Member

    Blog Posts:
    0
    Joined:
    Jan 2, 2012
    Messages:
    698
    PSR1257II
    #GP будет. Немного протрезвею, закодю сие в виде двигателя. В принципе есть тонна кода готового.
     
  20. PSR1257II

    PSR1257II New Member

    Blog Posts:
    0
    Joined:
    Jun 25, 2011
    Messages:
    228
    Malfoy

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