2017-02-13 17 views
0

У меня есть несколько двоичных файлов, каждая из которых содержит инструкции функции (может быть немного больше в конце). Начало файла также является начальной точкой функции.В angr, как загрузить и проанализировать двоичный файл, который содержит только инструкции по функциям, а не файл ELF

Эти файлы были извлечены из файла ELF. Платформа - arm64.

Итак, как загрузить и проанализировать этот файл с помощью angr?


Цель:

Каждая функция имеет «оператора переключатель», цель, чтобы получить все intergers из выражения дела.

Пример (код C):

void func1(int cmd){ 
    switch (cmd) { 
    case 1: 
     xxxx 
     break; 
    case 10: 
     yyyy; 
     break; 
    } 
} 

Результат: 1,10

ответ

0

мое предложение не использовать AnGR в этом случае, потому что вы могли бы извлечь все случаи гораздо более легким способом, например, используя r2pipe. Я создаю простой пример для вас, и я надеюсь, что это поможет.

C код

int main(int argc, char* argv[]) { 

    switch(argc) { 
     case 1: 
      break; 
     case 2: 
      break; 
     default: 
      break; 
    } 

} 

питон скрипт

import r2pipe 

r2 = r2pipe.open("switch") 

r2.cmd("aa") 

r2.cmdj('s main') 
instructions = r2.cmdj('pdfj') 

for instruction in instructions['ops']: 
    if (instruction["type"] == "cmp"): 
     print instruction["ptr"] 

Выход:

r2pipe.cmdj.Error: No JSON object could be decoded 
1 
2 

Я не уверен, что у меня было, что сообщение об ошибке в начале вывода.

HTH