Olga D. Sokolova

11 papers Journal 2Unranked 9
YearRankTypeTitle / Venue / Authors
2024 conf
ICTC
Vladimir V. Shakhov, Taewoong Hwang, Andrei Materukhin, Olga D. Sokolova
2022 J jnl
Sensors
Vladimir V. Shakhov, Andrei Materukhin, Olga D. Sokolova, Insoo Koo
2021 conf
ICCS-DE
Sergey Kratov, Olga D. Sokolova
2021 conf
IMCOM
Vladimir V. Shakhov, Olga D. Sokolova
2020 conf
ICCSA (1)
Vladimir V. Shakhov, Olga D. Sokolova, Insoo Koo
2014 conf
MACOM
Vladimir V. Shakhov, Olga D. Sokolova, Anastasia N. Yurgenson
2013 J jnl
Autom. Remote. Control.
Alexander A. Safonov, Andrey I. Lyakhov, Anastasia N. Yurgenson, Olga D. Sokolova
2012 conf
MACOM
Alexander A. Safonov, Andrey I. Lyakhov, Anastasia N. Urgenson, Olga D. Sokolova
2010 conf
MACOM
Dmitry Podkorytov, Alexey S. Rodionov, Olga D. Sokolova, Anastasia N. Yurgenson
2009 conf
ICUMT
Olga D. Sokolova, Anastasia N. Yurgenson
2009 conf
ICCSA (2)
Alexey S. Rodionov, Olga D. Sokolova, Anastasia N. Yurgenson, Hyunseung Choo
redb/extractors/decompiler/bninja/analysis/api.py
← Index redb/extractors/decompiler/bninja/analysis/api.py python
from enum import Enum


class ApiCategory(Enum):
    FILE_OP = [
        "CreateFile",
        "ReadFile",
        "WriteFile",
        "DeleteFile",
        "SetFilePointer",
        "CopyFile",
        "MoveFile",
        "FindFirstFile",
        "FindNextFile",
    ]
    MEMORY_OP = [
        "VirtualAlloc",
        "VirtualFree",
        "HeapAlloc",
        "HeapFree",
        "LocalAlloc",
        "GlobalAlloc",
        "MapViewOfFile",
        "VirtualProtect",
    ]
    NETWORK_OP = [
        "socket",
        "connect",
        "bind",
        "send",
        "recv",
        "WSAStartup",
        "InternetOpen",
        "InternetConnect",
        "HttpOpenRequest",
        "HttpSendRequest",
        "InternetReadFile",
        "URLDownloadToFile",
    ]
    REGISTRY_OP = [
        "RegOpenKey",
        "RegCreateKey",
        "RegSetValue",
        "RegQueryValue",
        "RegDeleteKey",
        "RegEnumKey",
        "RegFlushKey",
    ]
    PROCESS_OP = [
        "CreateProcess",
        "OpenProcess",
        "TerminateProcess",
        "GetProcessId",
        "CreateProcessAsUser",
        "NtCreateProcess",
    ]
    THREAD_OP = [
        "CreateThread",
        "SuspendThread",
        "ResumeThread",
        "CreateRemoteThread",
        "SetThreadContext",
        "GetThreadContext",
    ]
    INJECTION_OP = [
        "WriteProcessMemory",
        "VirtualAllocEx",
        "NtWriteVirtualMemory",
        "SetWindowsHookEx",
        "QueueUserAPC",
        "NtMapViewOfSection",
    ]
    EVASION_OP = [
        "IsDebuggerPresent",
        "CheckRemoteDebuggerPresent",
        "NtQueryInformationProcess",
        "GetTickCount",
        "OutputDebugString",
        "Sleep",
        "QueryPerformanceCounter",
    ]
    SPYING_OP = [
        "GetAsyncKeyState",
        "GetKeyboardState",
        "GetKeyState",
        "GetForegroundWindow",
        "SetWindowsHookEx",
        "BitBlt",
        "GetClipboardData",
    ]
    SYSTEM_OP = [
        "CreateToolhelp32Snapshot",
        "EnumDeviceDrivers",
        "EnumProcesses",
        "GetSystemDirectoryA",
        "GetLogicalDrives",
    ]
    SERVICE_OP = [
        "CreateServiceA",
        "OpenServiceA",
        "StartServiceA",
        "DeleteService",
        "OpenSCManagerA",
        "ControlService",
    ]
    CRYPTO_OP = [
        "CryptAcquireContext",
        "CryptGenKey",
        "CryptEncrypt",
        "CryptDecrypt",
        "CryptCreateHash",
        "CryptHashData",
        "CryptGenRandom",
    ]
    DLL_OP = ["LoadLibrary", "GetProcAddress", "FreeLibrary", "LdrLoadDll"]
    UNKNOWN_OP = []

    @classmethod
    def from_api(cls, api_name):
        for category in cls:
            if any(api_name.startswith(api) for api in category.value):
                return category
        return cls.UNKNOWN_OP