Запрет на запуск

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Ponchik, 21 Sep 2008.

Thread Status:
Not open for further replies.
  1. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    В общем есть такая пробелма...
    Надо запретить запускаться exe'шнику если файлы в определёной папки заменили

    Тоесть есть exe'шник, нужно как-то в него записать, что если MD5 такого-то файла не равен такому-то значению, то не запускаться
    Возможно-ли такое сделать? :rolleyes:
     
  2. ..::TROYAN::..

    ..::TROYAN::.. Elder - Старейшина

    Joined:
    22 May 2008
    Messages:
    90
    Likes Received:
    116
    Reputations:
    14
    можно зделать типо так:
    Code:
    var
     s:string;
    begin
    s:='bI';
    if s='bI' then sleep(10) //замераем на секунду
       else sleep($fffff); //если s неравно 'bI' то программа замерает до бесконечного времени=)
    
    раньше использовал такой способ в своих прогах=)
     
  3. lisa99

    lisa99 Banned

    Joined:
    15 Jul 2008
    Messages:
    359
    Likes Received:
    200
    Reputations:
    70
    ВКЛЮЧЕНИЕ В ТЕЛО EXE-файла СВОЕГО МОДУЛЯ

    гугли.

    2 вариант: сделать loader (любой язык, проверка директории + компиляция) и почистить заголовок исходного экзешника.
     
    2 people like this.
  4. _antony

    _antony Elder - Старейшина

    Joined:
    16 Jul 2008
    Messages:
    80
    Likes Received:
    43
    Reputations:
    0
    хм первое что в голову пришло - проверку сигнатуры сделать.
     
  5. SlyBit

    SlyBit Elder - Старейшина

    Joined:
    4 Jul 2008
    Messages:
    49
    Likes Received:
    8
    Reputations:
    0
    Ponchik

    Тебе нужно перехватить момент создания процесса (пишешь библиотеку внедряемую во все процессы или драйвер). Упрощенно схема создания процесса выглядит так:
    1) Открывается ехешник
    2) CreateThread - cоздается первый поток нового процесса (он приостановлен)
    3) CsrClientCallServer - происходит инициализация процесса, в этот момент он получает идентификатор.
    4) ResumeThread - возобновляется выполнение первичного потока, завершается инициализация процесса.

    Следовательно тебе нужно перехватывать ZwCreateThread и в ней проверять ID родителя, если он отличается от текущего процесса (GetCurrentProcessId()), то начал создаваться новый процесс. Ставишь где-нибуть метку и ждешь вызова ZwResumeThread.
    Как она вызывается, проверяешь выставлена ли метка, если да, то по хэдлу потока функцией ZwQueryInformationThread определяешь имя создаваемого процесса и затем, если нужно, убиваешь его.

    ----added

    Только сейчас заметил, что тебе нужно контроливать только один ехешник. Конечно проще заразить его кодом, подгружающим библиотеку проверяющую можно загружаться или нет. Или еще проще написать лоадер, который будет делать проверку файлов и затем в зависимоти от результата запускать или не запускать ехешник.
     
    #5 SlyBit, 21 Sep 2008
    Last edited: 21 Sep 2008
  6. _antony

    _antony Elder - Старейшина

    Joined:
    16 Jul 2008
    Messages:
    80
    Likes Received:
    43
    Reputations:
    0
    помоему ты не правильно задание понял. Ему просто надо узнать исходные ли файлы находятся в директории(тоесть их не подменяли).
     
  7. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Бред, ты не правильно понял вопрос ТС.
    Нарк?тогду уж таймер можно использовать....
    -----------------
    ТС, объясни нормально свой вопрос многие не поняли вопроса, и я тоже не до конца....
     
  8. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    вы ему еще посоветуйте драйвер написать, ddk даите и т.п.

    Ponchik:
    http://softsearch.ru/programs/145-444-exe-protector32-download.shtml
    http://www.shram.kiev.ua/hacker/gid/exepass.shtml
    http://null-team.com/2007/10/20/salfeld-exe-password-7.114.0.0-stavim.html

    да и вообше:
    http://www.google.ru/search?hl=ru&q=exe+%D0%BF%D0%BE%D0%B4+%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq=

    горекодер, убийственный код...
    Halt, ExitProcess. Exit в конце концов, отменили по дефтолу?
     
    #8 W!z@rD, 21 Sep 2008
    Last edited: 21 Sep 2008
    2 people like this.
  9. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    оффтоп, для благодарности есть репутация. Закрыто.
     
    1 person likes this.
Thread Status:
Not open for further replies.