BiteMoon's diary

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
>>Куссвюрм - Профессиональное программировнаие на ассемблере x64 с рассширениями AVX AVX2 и AVX-512 (2021)<< Вышла новая книга,думаю,что и вам,друзья,она будет полезна.
"В книге рассматривается программирование для 64-разрядной архитектуры
x86 и использование расширенного набора векторных команд (AVX). Изучив
этот материал, вы сможете кодировать быстродействующие функции и алгоритмы
с использованием 64-разрядного языка ассемблера x86 и расширений
набора команд AVX, AVX2 и AVX-512.
Примеры исходного кода разработаны с использованием Visual Studio C++
и MASM; для их запуска рекомендуется ПК на базе x86 с 64-разрядной ОС
Windows 10 и процессором, поддерживающим AVX.
Предполагается, что читатели имеют опыт программирования на языках
высокого уровня и базовые знания C++.
Книга предназначена разработчикам, которые хотят научиться писать код
с использованием языка ассемблера x64."
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
>> Экстремальный Cи. Параллелизм, ООП и продвинутые возможности [2021] Амини Камран <<
Для того чтобы овладеть языком Cи, знания одного лишь синтаксиса недостаточно. Специалист в области разработки должен обладать четким научным пониманием принципов и методик. Книга «Экстремальный Cи» научит вас пользоваться продвинутыми низкоуровневыми возможностями языка для создания эффективных систем, чтобы вы смогли стать экспертом в программировании на Cи.

Вы освоите директивы препроцессора, макрокоманды, условную компиляцию, указатели и многое другое. Вы по-новому взглянете на алгоритмы, функции и структуры. Узнаете, как выжимать максимум производительности из приложений с ограниченными ресурсами.

В XXI веке Си остается ключевым языком в машиностроении, авиации, космонавтики и многих других отраслях. Вы узнаете, как язык работает с Unix, как реализовывать принципы объектно-ориентированного программирования, и разберетесь с многопроцессной обработкой.
Камран Амини научит вас думать, сомневаться и экспериментировать. Эта книга просто необходима для всех, кто хочет поднять знания Cи на новый уровень.
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
Немного полезной информации по PE-формату файлов для новичков ну и не только,может ещё кому-нибудь будет полезно.))) PE101-v1RU.png
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
Подумал,что данный выпуск журнала >>СПЕЦХАКЕР<< пригодится начинающим,в нём есть и сведения,которые актуальны и сегодня.)))
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
>>Компиляторы. Принципы, технологии и инструментарий<<
Широко известная книга, своего рода классика жанра, рекомендуемая многими профессорами и разработчиками. Не так давно она была переиздана, и теперь каждая глава содержит только самые актуальные сведения по разработке компиляторов. Авторы помнят, что некоторые читатели могут использовать эту книгу как полное пособие, и поэтому обращают внимание на широчайший круг проблем, с которыми можно столкнуться в процессе разработки программного обеспечения.
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
>>Алгоритмические трюки для программистов<<
Эта книга не о компиляторах и их проектировании, но она незаменима для всех, кто имеет дело с низкоуровневым программированием (а без него в создании компилятора не обойтись). Здесь вы найдете информацию о CRC, научитесь таким трюкам, как целочисленное деление, в том числе с помощью сдвигов, вычисление остатка без подсчета частного, новые алгоритмы сжатия и расширения, деление с плавающей точкой, алгоритм LRU, а также оцените галерею графиков дискретных функций.
>>Код к книге<<
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
>>The Compiler Design Handbook: Optimizations and Machine Code Generation<<
Книга создана для того, чтобы помочь каждому исследователю и программисту обновить свои знания, усовершенствовать навыки и подготовиться к созданию прогрессивных качественных продуктов. 14 глав этого справочника посвящены таким вопросам, как сборка мусора, уменьшение времени выполнения компиляции и оптимизация процесса. Особое внимание уделено работе со встраиваемыми устройствами, а также способам отладки кода с ошибками. Книга обеспечит вам глубокое понимание принципа распределения регистров, программной конвейеризации, планировании инструкций и системы типизации.
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
Статья BiteMoon'a на тему
Введения в низкий уровень или фундамент для кодокопателя.
Где ты это нашёл?)))Не помню чтобы я это выкладывал,вроде только в вк,если честно,считаю не очень удачным творением.)))
 

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
Здравствуйте,друзья.Завалялась тут у меня небольшая коллекция пакеров и протекторов,возможно,что кому-нибудь из вас она тоже будет полезной.))) Скачать можно по >>Скачать пакеры и протекторы<< -этой ссылке.
В коллекцию вошли такие вот пакеры и протекторы:

Obsidium v.1.5
Private exe Protector v.5.0.0.5
Themida 2.4.6.0 (x32-bit,x64-bit)
UPX 3.96 (x32-bit,x64-bit)
VMProtect Ultimate v.3.4.0
 

OSPFv3

Мудрец
Сообщения
188
Реакции
184
Исследовательская работа от BiteMoon'a на тему: Ручная распаковка Protector v1.1.11(игра Indiana Jones And The Emperors Tomb

Ручная распаковка Protector v1.1.11 на примере игры Indiana Jones And The Emperors Tomb версии 1.0(RUS):

Инструменты:
-OllyDbg v1.10 с плагинами(если честно не знаю, пригодятся или нет)
-PeTools v1.5.800.2006 RC7
-Import Reconstructor v1.6F

Ну и так же дзэнствующая голова и руки, растущие из нужного места.)))

Это моя первая статья, поэтому прошу не винить если стиль изложения будет какой-то нестандартный и непривычный для кого-нибудь.
Шаг 1: Исследование.
Первое, что я решил сделать-это засунул экзешник indy.exe в OllyDbg, естественно попал на EP, которая находится по адресу 004D7000,вот собственно картина, которую я увидел:

Код:
004D7000 > 53 PUSH EBX
004D7001 51 PUSH ECX
004D7002 56 PUSH ESI
004D7003 E8 00000000 CALL indy.004D7008
004D7008 5B POP EBX
004D7009 81EB 08100000 SUB EBX,1008
004D700F 8DB3 34100000 LEA ESI,DWORD PTR DS:[EBX+1034]
004D7015 B9 F3030000 MOV ECX,3F3
004D701A BA 63172AEE MOV EDX,EE2A1763
004D701F 3116 XOR DWORD PTR DS:[ESI],EDX
004D7021 83C6 04 ADD ESI,4
004D7024 69D2 9768273E IMUL EDX,EDX,3E276897
004D702A 81F2 93482317 XOR EDX,17234893
004D7030 49 DEC ECX
004D7031 ^75 EC JNZ SHORT indy.004D701F
004D7033 8D10 LEA EDX,DWORD PTR DS:[EAX]
Ставлю бряк клавишей F2 на 004D7033 и нажимаю F9, чтобы обойти цикл. Когда брякнулись, снимаю бряк клавишей F2 и клавишей F8 трассирую дальше до следующего места:

Код:
004D7040 3116 XOR DWORD PTR DS:[ESI],EDX
004D7042 83C6 04 ADD ESI,4
004D7045 69D2 9768273E IMUL EDX,EDX,3E276897
004D704B 81F2 93482317 XOR EDX,17234893
004D7051 49 DEC ECX
004D7052 ^75 EC JNZ SHORT indy.004D7040
004D7054 6A 01 PUSH 1
Ставлю бряк на 004D7054 и нажимаю F9 чтобы обойти цикл. После того, когда брякнулись, снова снимаю бряк и клавишей F8 трассирую дальше места:

Код:
004D705C C683 B0000000 41 MOV BYTE PTR DS:[EBX+B0],41
004D7063 46 INC ESI
004D7064 83FE 1A CMP ESI,1A
004D7067 0F8D 3A010000 JGE indy.004D71A7
004D706D 8D83 80000000 LEA EAX,DWORD PTR DS:[EBX+80]
004D7073 C700 413A5C00 MOV DWORD PTR DS:[EAX],5C3A41
004D7079 0130 ADD DWORD PTR DS:[EAX],ESI
004D707B 50 PUSH EAX
004D707C FF53 0C CALL DWORD PTR DS:[EBX+C] -оппа, да это же вызов функции GetDriveTypeA
004D707F 83F8 05 CMP EAX,5
004D7082 74 02 JE SHORT indy.004D7086
004D7084 ^EB D6 JMP SHORT indy.004D705C
004D7086 6A 00 PUSH 0
Ставлю бряк на 004D7086 и жму F9 чтобы обойти цикл. Когда брякнулись, то снова снимаю бряк и клавишей F8 трассирую дальше до места:

Код:
004D705C C683 B0000000 41 MOV BYTE PTR DS:[EBX+B0],41
004D7063 46 INC ESI
004D7064 83FE 1A CMP ESI,1A
004D7067 0F8D 3A010000 JGE indy.004D71A7-а вот это у нас прыжок на начало вывода сообщения о том, что мы такие вредные диск мы не вставили.
004D706D 8D83 80000000 LEA EAX,DWORD PTR DS:[EBX+80]
004D7073 C700 413A5C00 MOV DWORD PTR DS:[EAX],5C3A41
004D7079 0130 ADD DWORD PTR DS:[EAX],ESI
004D707B 50 PUSH EAX
004D707C FF53 0C CALL DWORD PTR DS:[EBX+C]-наш старый знакомый вызов функции GetDriveTypeA
004D707F 83F8 05 CMP EAX,5
004D7082 74 02 JE SHORT indy.004D7086
004D7084 ^EB D6 JMP SHORT indy.004D705C
004D7086 6A 00 PUSH 0
004D7088 6A 00 PUSH 0
004D708A 8D43 30 LEA EAX,DWORD PTR DS:[EBX+30]
004D708D 50 PUSH EAX
004D708E 83C0 04 ADD EAX,4
004D7091 50 PUSH EAX
004D7092 6A 00 PUSH 0
004D7094 6A 10 PUSH 10
004D7096 8D83 90000000 LEA EAX,DWORD PTR DS:[EBX+90]
004D709C 50 PUSH EAX
004D709D 8D83 80000000 LEA EAX,DWORD PTR DS:[EBX+80]
004D70A3 50 PUSH EAX
004D70A4 FF53 14 CALL DWORD PTR DS:[EBX+14]-упс, а это вызов ещё одной нездоровой функции GetVolumeInformationA
004D70A7 85C0 TEST EAX,EAX
004D70A9 ^74 B1 JE SHORT indy.004D705C
004D70AB 8D8B 90000000 LEA ECX,DWORD PTR DS:[EBX+90]-а вот сюда мы вряд ли уже попадём без диска.
Поэтому вставляем диск в физический привод или его виртуальный дубликат в эмулятор дисков типа Daemon Tools и шаманим всё с начала до момента:

Код:
004D71A4  -FFE0             JMP EAX                                  ; indy.00401000
Почему именно сюда? Похоже что это и есть прыжок на нашу OEP,адрес которой лежит в EAX в данном случае OEP=1000.Почему 1000?Потому что Image base=400000 и мы его отнимаем.

Шаг 2:трепанация.
На этом месте останавливаемся, сворачиваем OllyDbg, но не закрываем. Дальше открываем PeTools, находим наш процесс, жмём на нём правую кнопочку мыши и выбираем "Dump Full...".Сохраняем дамп, закрываем PeTools, открываем Import Reconstructor, в поле "Attach to an Active Process" выбираем нашего пациента, в поле "OEP" пишем "1000" и нажимаем кнопочку "IAT AutoSearch",потом жмём кнопочку "Get Imports",после этого жмём кнопочку "Fix Dump",выбираем наш сохранённый дамп, сделанный PeTools и жмём кнопочку "Открыть". Всё, жмём кнопочку "Exit", вот наш экзешник и свободен от пакера и одновременно и от защиты тоже. Переименуем наш дамп так же как и оригинальный экзешник и заменим оригинальный получившимся. Можно свободно и беспроблемно играть.)))Всем удачного кряка и спасибо всем, кто уделил внимание этой писанине.))))

В исследовании мне помогла одна статья, имеющаяся на этом сайте.))))

Чтобы всем было понятно BiteMoon записал видео на эту тему.
 
Последнее редактирование:

BiteMoon

Самовар
Постоянный
Сообщения
82
Реакции
118
Официальная документация по отладчику x64Dbg на английском языке.
 

Прикрепленные файлы:

Верх Низ