Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
eXeL@B —› Вопросы новичков —› Вопросы по "Дневники чайника". |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 07 апреля 2012 20:40 · Поправил: Bulochkin · Личное сообщение · #1 Я создал эту тему для новичков (потому как сам им являюсь) и для тех кто вообще ничего не шарят и определении никаких не знают. Начал изучать "Дневники чайника" и 1) на теме "Знакомство c MASM32 и Win32" в чтиве 0 и виток 0 в разделе .386 не понял "В exe эта информация записывается в самом начале после заголовка PE. Если интересно, найдите в exe-файле буквы PE. Потом идут два нулевых байта, так как заголовок PE - это dword (4 байта).". Запустил пример exe через Ollydog и не нашел эти буквы PE. Где и как их найти? Или через другой отладчик? 2) на теме "Стек" тоже в чтиве 0 и виток 0 в конце "Ну что ж, отладчик Olly - ваш лучший друг. При открытии впишите ключ в поле "Arguments". Не торопитесь, подумайте что к чему." тоже не нашел это поле "Arguments". Искал через Ollydog так и не нашел. 3) также на теме "Стек" после описании команд Push и Pop идет пример который лучше открыть Softice'ом дабы точно видеть как меняется значение регистра ESP. Но Softice работает только под WinXP SP2. Есть ли еще какой-нибудь отладчик который подходит для данного примера и работает под WinXP SP3? Я пробовал запустить пример через Syser Debager, но у меня вообще вылетал синий BSOD экран когда открываю exe файл. 4) кроме того кто-нибудь может поделится таблицей байтов? Я запутался word - вроде как 1 байт, а почему dword - 4 байта? или я че-то путаю 5) последние. Определения. Может кто-нибудь может расписать хотя б мини словарь. ОС (и ОСЬ) - Операционная Система (это понятно) а что такое ВПП? |
|
Создано: 07 апреля 2012 20:54 · Личное сообщение · #2 1) в любом hex редакторе или pe-редакторе, например: 010 Editor или LordPE 2) открой olly нажми F3 откроется окно для выбора файла, вот нижние поле и есть "Arguments" 3) syser лучше ставить на виртуальную машину, он не любит антивирусы и софт подобного рода. 4) виртуальная память процесса ну придется читать word - 2 байта (слово) dword - 4 байта (двойное слово) ----- [nice coder and reverser] |
|
Создано: 07 апреля 2012 21:01 · Личное сообщение · #3 |
|
Создано: 07 апреля 2012 21:47 · Личное сообщение · #4 Bulochkin нет это внизу окна, которые откроется по F3 ----- [nice coder and reverser] | Сообщение посчитали полезным: Bulochkin |
|
Создано: 07 апреля 2012 22:15 · Личное сообщение · #5 |
|
Создано: 07 апреля 2012 22:44 · Поправил: Bulochkin · Личное сообщение · #6 1) Bulochkin пишет: Я создал эту тему для новичков (потому как сам им являюсь) и для тех кто вообще ничего не шарят и определении никаких не знают. Начал изучать "Дневники чайника" и 1) на теме "Знакомство c MASM32 и Win32" в чтиве 0 и виток 0 в разделе .386 не понял "В exe эта информация записывается в самом начале после заголовка PE. Если интересно, найдите в exe-файле буквы PE. Потом идут два нулевых байта, так как заголовок PE - это dword (4 байта).". Запустил пример exe через Ollydog и не нашел эти буквы PE. Где и как их найти? Или через другой отладчик? 2) на теме "Стек" тоже в чтиве 0 и виток 0 в конце "Ну что ж, отладчик Olly - ваш лучший друг. При открытии впишите ключ в поле "Arguments". Не торопитесь, подумайте что к чему." тоже не нашел это поле "Arguments". Искал через Ollydog так и не нашел. 3) также на теме "Стек" после описании команд Push и Pop идет пример который лучше открыть Softice'ом дабы точно видеть как меняется значение регистра ESP. Но Softice работает только под WinXP SP2. Есть ли еще какой-нибудь отладчик который подходит для данного примера и работает под WinXP SP3? Я пробовал запустить пример через Syser Debager, но у меня вообще вылетал синий BSOD экран когда открываю exe файл. 4) кроме того кто-нибудь может поделится таблицей байтов? Я запутался word - вроде как 1 байт, а почему dword - 4 байта? или я че-то путаю 5) последние. Определения. Может кто-нибудь может расписать хотя б мини словарь. ОС (и ОСЬ) - Операционная Система (это понятно) а что такое ВПП? И так вот примерно такие ответы я нашел на свои вопросы. И расставил их по полочке. 1) exe файл я открыл 010 Editor'ом (спасибо за подсказку Hellspawn) т.е. это специальный hex редактор для exe (они же и PE) файлов, их называют еще PE редакторы. После того как открыл я увидел две колонки. Слева hex значения, а справа их перевод с у меня они получились на строке 0040h и код букв в колонке hex 50 и 45 которые и совпадают c ASCII таблицей. После них как раз и идут нули как и писал автор Битфрай. 2) Запускаем отладчик OllyDogg нажимает на кнопку File - open или клавишу F3 и в этом же появившемся окне под полем названия файла есть поле "Arguments" туда и прописываем qwerty и прочие символы по заданию 3) к сожалению я пока не нашел решения 4) Таблицу я взял из программной срeды Turbo Pascal практический она тоже подходит. Где символ это название типов памяти для хранение, а где тип - размер ячейки типа памяти в байтах. 5) ОС/ОСь - Операционная Система ВПП - Виртуальная Память Процессора (Остальное пока незнаю? ((( может потому что пока я их не встречал) P.S.: Спасибо за участие и подсказки Hellspawn. И огромное СПАСИБО Битфрай за труд и обучение Тему закрывать не буду потому как впереди еще много вопросов))) |
|
Создано: 08 апреля 2012 10:26 · Поправил: Bulochkin · Личное сообщение · #7 Кто нибудь выполнял последние задании prax08.asm и prax09.asm? Задание на prax08.asm. 1. Найдите в этом коде 3 ошибки, которые не позволяют достичь цели. Первую ошибку исправляйте добавлением одной буквы (Ответы в конце). 2. Полностью разберите и откомментируйте каждую строку кода. 3. Ответьте, почему сообщения не вываливаются все сразу, а появляются по одному? Задание на prax09.asm 1. Нарисуйте поэтажную схему вызовов функций в этом примере. 2. Откомментируйте все строки кода так, чтобы вы поняли всю программу. 3. Измените способ шифровки. |
|
Создано: 08 апреля 2012 10:29 · Поправил: Bulochkin · Личное сообщение · #8 Bulochkin пишет: Задание на prax08.asm. 1. Найдите в этом коде 3 ошибки, которые не позволяют достичь цели. Первую ошибку исправляйте добавлением одной буквы (Ответы в конце). 2. Полностью разберите и от комментируйте каждую строку кода. 3. Ответьте, почему сообщения не вываливаются все сразу, а появляются по одному? Про ошибки-то понятно их и в конце можно найти, но вот описания строк. Я примерно ее описал вот так Code:
Правильно ли я описал? А в prax09.asm вообще запутался. Функцию шифровки нашел как менять не понял? |
|
Создано: 08 апреля 2012 11:05 · Поправил: plutos · Личное сообщение · #9 push 0 ; Пустой параметр для выхода из программы В общем все правильно, только "0" здесь все же не "пустой параметр". Он имеет свой смысл и свою цель. The ExitProcess function ends a process and all its threads. VOID ExitProcess( UINT uExitCode // exit code for all threads ); uExitCode Specifies the exit code for the process, and for all threads that are terminated as a result of this call. Use the GetExitCodeProcess function to retrieve the process's exit value. Use the GetExitCodeThread function to retrieve a thread's exit value. Загрузите Win32 Programmer's Reference (just google file name: "win32.hlp"). Если хотите научиться использовать Win32 API's вам без него не обойтись. А в prax09.asm вообще запутался. Функцию шифровки нашел как менять не понял? Посмотрите внимательно на этот код, постарайтесь понять смысл каждой инструкции, если нужно, загрузите всю программу в debugger и пройдите пошагово. Crypt_Loop: movzx EDX, byte ptr [EAX] test EDX,EDX jz Fin_Crypt xor DL,CL mov byte ptr [EBX],DL inc EAX inc EBX xor CL, 00000101b jmp Crypt_Loop Алгоритм шифрования можно здесь менять многими способами. Сначала разберитесь с тем, как он работает у автора, а потом ответ будет ясен сам собой. ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: Bulochkin |
|
Создано: 08 апреля 2012 14:11 · Поправил: Bulochkin · Личное сообщение · #10 movzx EDX, byte ptr [EAX]plutos пишет: Crypt_Loop: movzx EDX, byte ptr [EAX] test EDX,EDX jz Fin_Crypt xor DL,CL mov byte ptr [EBX],DL inc EAX inc EBX xor CL, 00000101b jmp Crypt_Loop movzx EDX, byte ptr [EAX] что это строчка выполняет? и что это за команда movzx? читал в |
|
Создано: 08 апреля 2012 14:28 · Личное сообщение · #11 Bulochkin пишет: и что это за команда movzx? копирует в DL байт по адресу [EAX], остальные биты регистра EDX заполняет нулями. | Сообщение посчитали полезным: Bulochkin |
|
Создано: 08 апреля 2012 15:24 · Поправил: Bulochkin · Личное сообщение · #12 Bulochkin пишет: Crypt_Loop: movzx EDX, byte ptr [EAX] test EDX,EDX jz Fin_Crypt xor DL,CL mov byte ptr [EBX],DL inc EAX inc EBX xor CL, 00000101b jmp Crypt_Loop стало быть дальше примерно вот такое пояснения как я понял test EDX,EDX сравнивает обнулен ли регистр EDX. А точнее пустой ли аргумент jz Fin_Crypt если да, то перейти на метку Fin_Crypt, если нет то перейдет на следующею строчку xor DL,CL сравнивает 8-битные регистры DL с CL и присваивается значение 0 или 1 в 8-битный регистр DL новерно здесь происходит шифровка символа mov byte ptr [EBX],DL присваивает байтовое значение по адресу [EBX] с регистра DL, а точнее составление слова по одному зашифрованному символу inc EAX увеличивает EAX на один, переход на следующий символ который надо зашифровать inc EBX увеличивает EBX на один, переход на следующий символ xor CL, 00000101b сравнивает CL с 00000101b и присваивает 0 или 1 регистр CL, вот это я не понял для чего ? я предполагаю что это строчка указывает в какой символ зашифровать следующий символ jmp Crypt_Loop повторит цикл получается EAX - оригинал слово а EBX - зашифрованное слово mov ECX, 00001010b xor CL, 00000101b что означают эти бинарные цифры? смотрел через калькулятор то вышло на 1010 - число 520, а 101 - 65 (в десятеричной сис). с чем они связаны ? И еще одно не понятно как такой не большой код может меняет Символы на другие? здесь даже коды символов в ASCII не видно и что вот это строчка делает? Crypt_String byte 100h dup (00) ; Слева от dup - количество, справа - что повторять ; |
|
Создано: 08 апреля 2012 15:26 · Личное сообщение · #13 Bulochkin пишет: и что это за команда movzx? Команда MOVZX считывает содержимое операнда-источника (второй операнд — регистр или ячейка памяти) как байт или слово, затем расширяет это значение нулями до атрибута размера операнда (16 или 32 бита) и сохраняет результат в регистре-назначении. movzx обычно используют для получения эквивалентного, но большего по размеру операнда без учета знака. Она может быть использована для согласования операндов различной размерности. ----- We do what we want because we can. |
|
Создано: 09 апреля 2012 09:43 · Поправил: plutos · Личное сообщение · #14 xor CL, 00000101b что означают эти бинарные цифры? Ничего не означают. Это произвольно выбраная константа, с которой XOR'ят содержание регистра CL (в данном случае). Эта операция производится "побитово": каждый bit CL сравнивается с соответствующим bit нашей константы. 1 xor 1 = 0 1 xor 0 = 1 0 xor 1 = 1 0 xor 0 = 0 например: 1110 xor 1001 = 0111 И результат сохраняется в CL. что вот это строчка делает? Crypt_String byte 100h dup (00) ; Слева от dup - количество, справа - что повторять ; Резервирует область памяти определенного размера (100h (256 decimal) bytes в данном случае) и заполняет ее нулями. ----- Give me a HANDLE and I will move the Earth. |
|
Создано: 09 апреля 2012 18:07 · Поправил: Bulochkin · Личное сообщение · #15 plutos пишет: xor CL, 00000101b что означают эти бинарные цифры? Ничего не означают. Это произвольно выбраная константа, с которой XOR'ят содержание регистра CL (в данном случае). Эта операция производится "побитово": каждый bit CL сравнивается с соответствующим bit нашей константы. 1 xor 1 = 0 1 xor 0 = 1 0 xor 1 = 1 0 xor 0 = 0 например: 1110 xor 1001 = 0111 И результат сохраняется в CL. Что делает операнд xor это и так понятно, т.к. Битфрай описал как она работает, я не пойму зачем ее тогда писать сюда? в этот цикл Crypt_Loop:? |
|
Создано: 09 апреля 2012 19:01 · Поправил: Veliant · Личное сообщение · #16 |
|
Создано: 10 апреля 2012 10:21 · Личное сообщение · #17 Veliant пишет: Потому что алгоритм шифрования здесь, именуемый циклический xor, а помеха 101b скорей всего сделана, чтобы чуть усложнить алгоритм. Надо было туда поставить хотя бы ror/rol) Но все равно, даже на глаз будет понятно как шифровалось А на человеческом языке можно? Как никак дневники ЧАЙНИКА а то вдруг моя бабуся зайдет на этому тему? |
|
Создано: 10 апреля 2012 10:44 · Поправил: plutos · Личное сообщение · #18 Тут и написано на человеческом языке. Просто у вас пока не хватает знаний для того, чтобы это понять. Мой совет - не зацикливайтесь на этом цикле (no pun intended!), двигайтесь дальше, со временем многое станет ясно само собой. Тем более, что в будущем эта тема наверняка всплывет в следующих уроках. Не пытайтесь во всем идеально разобраться сразу, хотя такое стремление вполне естественно и понятно. A если все же невтерпеж, то загрузите программу в debugger, нажимайте F7 или F8 и следите за тем, что происходит с вашими регистрами и переменными. Debugger - лучший учитель! ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: Bulochkin |
|
Создано: 15 апреля 2012 00:53 · Личное сообщение · #19 Не хочу плодить т.п. тем, и пишу тут, думаю никто не против Скажите пожалуйста, как понять такой код: Code:
Комне этот exe_шник попал при посешение какого то сайта и пытался связыватся с "кем то" , наверно чтоб скачать основной часть.. этот exe_щник весит 98 kb, и там много вот таких отрывков кода. Не упакован ничем. PEiD > FASM 1.5x * |
|
Создано: 15 апреля 2012 01:16 · Личное сообщение · #20 |
|
Создано: 15 апреля 2012 01:24 · Поправил: Ratinsh · Личное сообщение · #21 |
|
Создано: 15 апреля 2012 01:31 · Личное сообщение · #22 |
|
Создано: 15 апреля 2012 11:11 · Личное сообщение · #23 |
|
Создано: 15 апреля 2012 12:08 · Поправил: Vovan666 · Личное сообщение · #24 |
|
Создано: 15 апреля 2012 15:43 · Поправил: Contrafack · Личное сообщение · #25 Пробовал и ctrl+a, и через Analysis просто внизу показывает, что типа идет анализ и все, ничего не меняется в самом коде вот скрин: P.S. Сегодня уже NOD32 его видет, что это троян доунлоадер вчера на вирустотале не 1 антивирус не признал его даже подозрительным обьектом ------ вчера This file was already analysed by VirusTotal on 2012-04-14 20:27:57. Detection ratio: 0/42 ----- Сегодня File name: 0.45004017242902683.exe File type: Win32 EXE Detection ratio: 2 / 42 Analysis date: 2012-04-15 12:28:57 UTC DrWeb > Trojan.PWS.Siggen.35489 NOD32 > Win32/TrojanDownloader.Agent.RDS |
|
Создано: 15 апреля 2012 15:57 · Личное сообщение · #26 Кстати, отметил все, потом нажал Ctrl+BkSpc и как бы уже код только показывает... Теперь очень хочу понять откуда он хочет качать что то? как это найти? смотрел наблядно - ничего подозрительного не нашел. пробовал анализировать в Anubis (он-лайн сервис), но там тоже нет инфо о соединениях. вот в Run-time Dlls мудулях нашел библиотеку C:\WINDOWS\system32\CRYPT32.dll , это значит, что он шифрует трафик или что то еще? |
|
Создано: 17 апреля 2012 09:55 · Поправил: Bulochkin · Личное сообщение · #27 |
|
Создано: 29 июня 2014 12:27 · Поправил: andrush · Личное сообщение · #28 чтива 0,виток 0,день 8 ,стек prax07.asm сохраняю,,build all - пишет fatal error A1000 cannot open file .... Code:
что не так? |
|
Создано: 29 июня 2014 12:40 · Личное сообщение · #29 |
|
Создано: 29 июня 2014 13:06 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Вопросы новичков —› Вопросы по "Дневники чайника". |