Методы реверс-инжиниринга обфусцированного и виртуализированного приложения презентация

Слайд 2

СПОСОБЫ ЗАЩИТЫ ПРИЛОЖЕНИЙ Упаковка / шифрование всего файла Обфускация отдельных

СПОСОБЫ ЗАЩИТЫ ПРИЛОЖЕНИЙ

Упаковка / шифрование всего файла
Обфускация отдельных строк / машинного

кода
Виртуализация кода
Обнаружение отладчиков/эмуляторов/песочниц/виртуалок
Слайд 3

DROPPER – STAGE 1

DROPPER – STAGE 1

Слайд 4

DROPPER – STAGE 1 https://upx.github.io/ upx –d packed.exe_ –o unpacked.exe_

DROPPER – STAGE 1

https://upx.github.io/
upx –d packed.exe_
–o unpacked.exe_

Слайд 5

DROPPER – STAGE 2

DROPPER – STAGE 2

Слайд 6

DROPPER – STAGE2 OllyDbg + Cmdbar / x64dbg / Immunity

DROPPER – STAGE2

OllyDbg + Cmdbar / x64dbg / Immunity Debugger
bp VirtualAlloc
bp

VirtualProtect
bp VirtualFree
bp WriteProcessMemory
Слайд 7

DROPPER – STAGE2

DROPPER – STAGE2

Слайд 8

DROPPER – STAGE3

DROPPER – STAGE3

Слайд 9

DROPPER – STAGE3

DROPPER – STAGE3

Слайд 10

DROPPER – STAGE3

DROPPER – STAGE3

Слайд 11

DROPPER – STAGE3

DROPPER – STAGE3

Слайд 12

DROPPER – STAGE3 data_0x00410e24 - relocs ? data_0x004718b4 - some

DROPPER – STAGE3

data_0x00410e24 - relocs ?
data_0x004718b4 - some strings + archive
data_0x00471c33

- hashed import table
Слайд 13

DROPPER – STAGE3 - ARCHIVE

DROPPER – STAGE3 - ARCHIVE

Слайд 14

UNPACKING ARCHIVE 6 files !!! BIOS IMAGE 16-bit shellcode (3x) Driver x32 Driver x64

UNPACKING ARCHIVE

6 files !!!
BIOS IMAGE
16-bit shellcode (3x)
Driver x32
Driver x64

Слайд 15

DRIVER Search for hash1 and exe_search_16bytes_by_hash functions

DRIVER

Search for hash1 and exe_search_16bytes_by_hash functions

Слайд 16

DRIVER – VIRTUAL CODE

DRIVER – VIRTUAL CODE

Слайд 17

STRINGS ENCRYPTED WITH 4-BYTE KEYS For some encrypted strings could

STRINGS ENCRYPTED WITH 4-BYTE KEYS

For some encrypted strings could not find

XREFs and decryption keys!
MAYBE they are decrypted from virtual code?
Слайд 18

INTERPRETER CODE OBFUSCATED AND SPLITED INTO MABY CHUNKS

INTERPRETER CODE OBFUSCATED AND SPLITED INTO MABY CHUNKS

Слайд 19

VIRTUAL INSTRUCTIONS 4-byte arguments xored with 0x69B00B7A 2-byte arguments xored

VIRTUAL INSTRUCTIONS

4-byte arguments xored with 0x69B00B7A
2-byte arguments xored with 0x13F1
1-byte arguments

xored with 0x57
Слайд 20

SEARCHING FOR XREFS IN VIRTUAL CODE Prepare disassembler module for

SEARCHING FOR XREFS IN VIRTUAL CODE

Prepare disassembler module for IDA –

too long and complex
XOR string address with 0x69B00B7A, search this in virtual code, and try nearby XORED 4-bytes blocks as decryption keys => easy profit
FINALLY DECRYPTED CC-server address and PORT
Слайд 21

DGA ALGORITHM SEEMS DGA ALROTITHM ALSO EXISTS NO XREFS FROM

DGA ALGORITHM

SEEMS DGA ALROTITHM ALSO EXISTS
NO XREFS FROM NATIVE CODE TO

DGA strings
TODO – time to make IDA PRO processor module
Имя файла: Методы-реверс-инжиниринга-обфусцированного-и-виртуализированного-приложения.pptx
Количество просмотров: 37
Количество скачиваний: 0