retdec
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
retdec::bin2llvmir::SyscallFixer Class Reference

#include <syscalls.h>

Inheritance diagram for retdec::bin2llvmir::SyscallFixer:
Inheritance graph
[legend]
Collaboration diagram for retdec::bin2llvmir::SyscallFixer:
Collaboration graph
[legend]

Public Member Functions

 SyscallFixer ()
 
virtual bool runOnModule (llvm::Module &M) override
 
bool runOnModuleCustom (llvm::Module &M, Config *c, FileImage *img, Lti *lti, Abi *abi)
 

Static Public Attributes

static char ID = 0
 

Private Member Functions

bool run ()
 
bool transform (AsmInstruction ai, uint64_t code, const std::map< uint64_t, std::string > &codeMap)
 
bool runArm ()
 
bool runArm_linux_32 ()
 
bool runArm_linux_32 (AsmInstruction ai)
 
bool runArm64 ()
 
bool runArm64_linux_64 ()
 
bool runArm64_linux_64 (AsmInstruction ai)
 
bool runMips ()
 
bool runMips_linux ()
 
bool runMips_linux (AsmInstruction ai)
 
bool runX86 ()
 
bool runX86_linux_32 ()
 
bool runX86_linux_32 (AsmInstruction ai)
 

Private Attributes

llvm::Module * _module = nullptr
 
Config_config = nullptr
 
FileImage_image = nullptr
 
Lti_lti = nullptr
 
Abi_abi = nullptr
 

Constructor & Destructor Documentation

◆ SyscallFixer()

retdec::bin2llvmir::SyscallFixer::SyscallFixer ( )

Member Function Documentation

◆ run()

bool retdec::bin2llvmir::SyscallFixer::run ( )
private

◆ runArm()

bool retdec::bin2llvmir::SyscallFixer::runArm ( )
private

◆ runArm64()

bool retdec::bin2llvmir::SyscallFixer::runArm64 ( )
private

◆ runArm64_linux_64() [1/2]

bool retdec::bin2llvmir::SyscallFixer::runArm64_linux_64 ( )
private

◆ runArm64_linux_64() [2/2]

bool retdec::bin2llvmir::SyscallFixer::runArm64_linux_64 ( AsmInstruction  ai)
private

| 0x00400180 200080d2 movz x0, 0x1 ; [02] -r-x section size 56 named .text | 0x00400184 61010058 ldr x1, loc._d_2 ; "Hello, world!\n" | 0x00400188 820280d2 movz x2, 0xe | 0x0040018c 080880d2 movz x8, 0x40 ; '@' | ;– syscall.io_setup: | 0x00400190 010000d4 svc 0 \

◆ runArm_linux_32() [1/2]

bool retdec::bin2llvmir::SyscallFixer::runArm_linux_32 ( )
private

◆ runArm_linux_32() [2/2]

bool retdec::bin2llvmir::SyscallFixer::runArm_linux_32 ( AsmInstruction  ai)
private

Sample 8A5C: 160d8: ea00043b b 0x171cc 160dc: ef900026 svc 0x00900026

◆ runMips()

bool retdec::bin2llvmir::SyscallFixer::runMips ( )
private

◆ runMips_linux() [1/2]

bool retdec::bin2llvmir::SyscallFixer::runMips_linux ( )
private

◆ runMips_linux() [2/2]

bool retdec::bin2llvmir::SyscallFixer::runMips_linux ( AsmInstruction  ai)
private

◆ runOnModule()

bool retdec::bin2llvmir::SyscallFixer::runOnModule ( llvm::Module &  M)
overridevirtual

◆ runOnModuleCustom()

bool retdec::bin2llvmir::SyscallFixer::runOnModuleCustom ( llvm::Module &  M,
Config c,
FileImage img,
Lti lti,
Abi abi 
)

◆ runX86()

bool retdec::bin2llvmir::SyscallFixer::runX86 ( )
private

◆ runX86_linux_32() [1/2]

bool retdec::bin2llvmir::SyscallFixer::runX86_linux_32 ( )
private

◆ runX86_linux_32() [2/2]

bool retdec::bin2llvmir::SyscallFixer::runX86_linux_32 ( AsmInstruction  ai)
private

◆ transform()

bool retdec::bin2llvmir::SyscallFixer::transform ( AsmInstruction  ai,
uint64_t  code,
const std::map< uint64_t, std::string > &  codeMap 
)
private

Member Data Documentation

◆ _abi

Abi* retdec::bin2llvmir::SyscallFixer::_abi = nullptr
private

◆ _config

Config* retdec::bin2llvmir::SyscallFixer::_config = nullptr
private

◆ _image

FileImage* retdec::bin2llvmir::SyscallFixer::_image = nullptr
private

◆ _lti

Lti* retdec::bin2llvmir::SyscallFixer::_lti = nullptr
private

◆ _module

llvm::Module* retdec::bin2llvmir::SyscallFixer::_module = nullptr
private

◆ ID

char retdec::bin2llvmir::SyscallFixer::ID = 0
static

The documentation for this class was generated from the following files: