Внедрение в чужой процесс..

Тема в разделе "WASM.BEGINNERS", создана пользователем Grag, 4 окт 2009.

  1. Grag

    Grag New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2009
    Сообщения:
    6
    Мм.. сорри, не знал как назвать тему) я вообще полный нуб в крекинге и всем что с этим связано, просто заинтересовал один вопрос, вспомнил за этот сайт, сразу зарегился и вот я уже пишу)

    Допустим существует программа..она работает так..не важно каким образом, но в ней генерируется определенный код..который свободно можно посмотреть в самой программе когда она работает. И всё в ней на этом коде завязано как бы сказать) Так вот..реально ли написать свою программку, которая бы могла этот код поменять? Ткните плиз на пару статей по этой теме) .. например что юзать чтобы узнать адрес в памяти этого кода, статейку как внедриться и заменить и тд) я уверен это все есть, просто тут статей очень много и я не знаю что именно нужно мне, заранее спс)
     
  2. yurza

    yurza New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2008
    Сообщения:
    69
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    apihook - это один из методов внедрения. А если про крекинг :
    http://www.wasm.ru/all.php?mode=art
     
  4. Coderess

    Coderess New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    41
    Grag
    Узнайте смещение, где светиться это значение и напишите "лоадер", который запустит прогу и вытащит в памяти некое значение по найденному смещению, также и заменить его.

    Код (Text):
    1. STARTUPINFO startup;
    2. PROCESS_INFORMATION procinf;
    3.  
    4. ZeroMemory(&startup,sizeof(STARTUPINFO));
    5.  
    6. if (!CreateProcess("Target.exe", NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &startup,&prinf))
    7. {
    8.  MessageBox(0,"Ошибка: При запуске приложения!",0,MB_ICONWARNING);
    9.  return 0;
    10. }
    11.  
    12. DWORD lpOfsset = 0x4010FA;
    13. DWORD buf1          = 0x90;
    14. DWORD buf2[4];
    15. DWORD lpBw;
    16.  
    17. // Записать
    18. WriteProcessMemory(procinf.hProcess, &lpOfsset , &buf1, 1, &lpBw);
    19.  
    20. // Прочитать
    21. ReadProcessMemory(procinf.hProcess, &lpOfsset, &buf2, sizeof(buf2), &lpBw);
    22.  
    23. ResumeThread(procinf.hThread);
    Запускает приостановленным, читает/записывает и запускат.
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну внедрение в чужой процесс уже обсуждалось и в статьях и на форуме. На форуме мне искать лень, в статьях - смотри ссылку от yurza и еще http://www.wasm.ru/article.php?article=fwb на тему инжекта.
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Что-то народ только название темы читает, а в смысл текста не вникает.
    Great - не знает он куда внедрять, а только примеривается :)
    Какой может быть инжект, если он
     
  7. IceT

    IceT IceT

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    233
    Адрес:
    RU
    Есть запросы на взлом на некоторых сайтах по крекингу. А если хочешь сам... то надо начинать с ассемблера))
     
  8. Grag

    Grag New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2009
    Сообщения:
    6
    сам хочу) так ж интереснее) ну а что делать..придется) я вообще щас первый раз OllyDbg запустил О_о
    +1..
    Я смотрю везде статьи чисто по крекингу..то есть по взлому программ, написанию кейгенов и тд..но по-моему у меня задача куда проще=\
    Объясню на пальцах (и жду такого же в ответ+) ). Есть программа. В ней каждый раз при запуске генерируется какой-то ID, его видно в главном окне проги. Мне нужно написать свою прогу, не патчить существующую, а именно свою сделать, чтобы можно было вводить самостоятельно у себя этот ID, и нажимая у себя кнопочку "Заменить ID" (допустим=)), он в той проге менялся на нужный мне "на лету"...
    Кажется пост Coderess'a близок к истине, спс, только вот как узнать это смещение..
     
  9. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Святая простота! Это не крекинг называется, а реверс-инжиниринг - обратное кодирование. Самое сложное, но без него никуда не продвинешься. Ты хочешь "выдрать" алгоритм из готовой программы. Есть конечно готовые "рипперы" и совет Coderess тебе "поможет" найти место откуда выдирать. Но чтобы воспользоваться советом, надо немного знать ассемблер...
    Если выдранный код заработает - тебе повезло, иначе придется разбираться.
    Если программа, которую ты квыряешь, интересная, может кто-то забесплатно все за тебя сделает -)
    У новичков всегда создается впечатление, что достаточно прочитать 10 страниц по своей проблеме и ты "крекер"... Увы, читать приходится совсем другое, вроде бы постороннее, но без этого никуда. Мне например повезло - ассемблер, отладчики и хекс-код я уже знал. С тех пор много уже прочел и до сих пор новичок :)
     
  10. Grag

    Grag New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2009
    Сообщения:
    6
    У программы есть функция которая на выходе даёт этот ID. Её мне и нужно найти, но в тысячах строк ассемблера сделать это непросто. Я уже даже молчу о подмене, пока даже не знаю что и где менять ,т.к. не могу найти место))
    Очень. И давольно известная