From 6812c973c9fa9b4ad642ab81856c05f87bd6fcc4 Mon Sep 17 00:00:00 2001 From: KyleMiles Date: Thu, 27 Jan 2022 22:43:28 -0500 Subject: Format All Files --- examples/print_syscalls/src/arm-syscall.cpp | 173 ++++++++++++++-------------- 1 file changed, 87 insertions(+), 86 deletions(-) (limited to 'examples/print_syscalls/src/arm-syscall.cpp') diff --git a/examples/print_syscalls/src/arm-syscall.cpp b/examples/print_syscalls/src/arm-syscall.cpp index e291f30a..e74f8324 100644 --- a/examples/print_syscalls/src/arm-syscall.cpp +++ b/examples/print_syscalls/src/arm-syscall.cpp @@ -15,105 +15,106 @@ using namespace BinaryNinja; using namespace std; #ifndef _WIN32 -#include -#include + #include + #include string get_plugins_directory() { - Dl_info info; - if (!dladdr((void *)BNGetBundledPluginDirectory, &info)) - return NULL; + Dl_info info; + if (!dladdr((void*)BNGetBundledPluginDirectory, &info)) + return NULL; - stringstream ss; - ss << dirname((char *)info.dli_fname) << "/plugins/"; - return ss.str(); + stringstream ss; + ss << dirname((char*)info.dli_fname) << "/plugins/"; + return ss.str(); } #else string get_plugins_directory() { - return "C:\\Program Files\\Vector35\\BinaryNinja\\plugins\\"; + return "C:\\Program Files\\Vector35\\BinaryNinja\\plugins\\"; } #endif -bool is_file(char *fname) +bool is_file(char* fname) { - struct stat buf; - if (stat(fname, &buf) == 0 && (buf.st_mode & S_IFREG) == S_IFREG) - return true; + struct stat buf; + if (stat(fname, &buf) == 0 && (buf.st_mode & S_IFREG) == S_IFREG) + return true; - return false; + return false; } -int main(int argc, char *argv[]) +int main(int argc, char* argv[]) { - if (argc != 2) { - cerr << "USAGE: " << argv[0] << " " << endl; - exit(-1); - } - - char *fname = argv[1]; - if (!is_file(fname)) { - cerr << "Error: " << fname << " is not a regular file" << endl; - exit(-1); - } - - /* In order to initiate the bundled plugins properly, the location - * of where bundled plugins directory is must be set. Since - * libbinaryninjacore is in the path get the path to it and use it to - * determine the plugins directory */ - SetBundledPluginDirectory(get_plugins_directory()); - InitPlugins(); - - Ref bd = new BinaryData(new FileMetadata(), argv[1]); - Ref bv; - for (auto type : BinaryViewType::GetViewTypes()) - { - if (type->IsTypeValidForData(bd) && type->GetName() != "Raw") - { - bv = type->Create(bd); - break; - } - } - - if (!bv || bv->GetTypeName() == "Raw") - { - fprintf(stderr, "Input file does not appear to be an exectuable\n"); - return -1; - } - - bv->UpdateAnalysisAndWait(); - - auto arch = bv->GetDefaultArchitecture(); - auto platform = bv->GetDefaultPlatform(); - - auto cc = platform->GetSystemCallConvention(); - if (!cc) { - cerr << "Error: No system call conventions found for " - << platform->GetName() << endl; - exit(-1); - } - - auto reg = cc->GetIntegerArgumentRegisters()[0]; - - for (Function *func : bv->GetAnalysisFunctionList()) { - auto il_func = func->GetLowLevelIL(); - - for (size_t i = 0; i < il_func->GetInstructionCount(); i++) { - auto instr = (*il_func)[il_func->GetIndexForInstruction(i)]; - - if (instr.operation == LLIL_SYSCALL) { - auto reg_value = il_func->GetRegisterValueAtInstruction(reg, i); - - cout << "System call address: 0x" - << hex << instr.address - << " - " - << dec << reg_value.value - << endl; - } - } - } - - // Shutting down is required to allow for clean exit of the core - BNShutdown(); - - return 0; + if (argc != 2) + { + cerr << "USAGE: " << argv[0] << " " << endl; + exit(-1); + } + + char* fname = argv[1]; + if (!is_file(fname)) + { + cerr << "Error: " << fname << " is not a regular file" << endl; + exit(-1); + } + + /* In order to initiate the bundled plugins properly, the location + * of where bundled plugins directory is must be set. Since + * libbinaryninjacore is in the path get the path to it and use it to + * determine the plugins directory */ + SetBundledPluginDirectory(get_plugins_directory()); + InitPlugins(); + + Ref bd = new BinaryData(new FileMetadata(), argv[1]); + Ref bv; + for (auto type : BinaryViewType::GetViewTypes()) + { + if (type->IsTypeValidForData(bd) && type->GetName() != "Raw") + { + bv = type->Create(bd); + break; + } + } + + if (!bv || bv->GetTypeName() == "Raw") + { + fprintf(stderr, "Input file does not appear to be an exectuable\n"); + return -1; + } + + bv->UpdateAnalysisAndWait(); + + auto arch = bv->GetDefaultArchitecture(); + auto platform = bv->GetDefaultPlatform(); + + auto cc = platform->GetSystemCallConvention(); + if (!cc) + { + cerr << "Error: No system call conventions found for " << platform->GetName() << endl; + exit(-1); + } + + auto reg = cc->GetIntegerArgumentRegisters()[0]; + + for (Function* func : bv->GetAnalysisFunctionList()) + { + auto il_func = func->GetLowLevelIL(); + + for (size_t i = 0; i < il_func->GetInstructionCount(); i++) + { + auto instr = (*il_func)[il_func->GetIndexForInstruction(i)]; + + if (instr.operation == LLIL_SYSCALL) + { + auto reg_value = il_func->GetRegisterValueAtInstruction(reg, i); + + cout << "System call address: 0x" << hex << instr.address << " - " << dec << reg_value.value << endl; + } + } + } + + // Shutting down is required to allow for clean exit of the core + BNShutdown(); + + return 0; } -- cgit v1.3.1