LINUX.ORG.RU

Radare2 Переменные и скрипты

 ,


0

1

Вопросы ниже...

Более менее парсить с помощью pf понял.

pf.pe_section_table [8]zipipppwwo name virtualSize VAddr SizeRawData PointerRawData PointerToRelocations PointerToLinenumbers NumberOfRelocations NumberOfLinenumbers Characteristics

                name : 0x00000178 = .text
          virtualSize : 0x00000180 = 7768
                VAddr : 0x00000184 = 0x00001000
          SizeRawData : 0x00000188 = 8192
      PointerRawData : 0x0000018c = 0x00000400
 PointerToRelocations : 0x00000190 = 0x00000000
 PointerToLinenumbers : 0x00000194 = 0x00000000
  NumberOfRelocations : 0x00000198 = 0x0000
  NumberOfLinenumbers : 0x0000019a = 0x0000
      Characteristics : 0x0000019c = (octal)  014000000140

> iS
[Sections]
idx=00 vaddr=0x00401000 paddr=0x00000400 sz=8192 vsz=8192 perm=m-r-x name=.text

но вот допустим мне понадобиться переменная чтобы вручную вычислить нечто(да знаю в radare есть преобразователь физ/вирт адресов) используя переменные то я не знаю как их задать, возможно ли это?(e? есть переменные конфига, у них строго заданные имена)

Или чтобы писать свой анализатор/комментатор какого нибудь бинарника, его надо писать через через r2pipe, используя сокращенные однобуквенные команды, чтобы потом, все равно встроить в тот же radare?

Скрипты с переменными и циклами можно писать в radare, или надо использовать r2pipe?

Как встраивать свои скрипты в Radare?

★★★★★

Ого, Radare не сдох ещё?! 0_о

AntonyRF ★★★★
()

Cast XVilka, готовлю ещё одну статью, собственно в качестве примера разбираю PE файл(IOLI crackme) и сравниваю с выводом самого radare2. Собственно возникают вопросы а документация, странная, что-то в документации, что-то в блоге.

DR_SL ★★★★★
() автор топика
Ответ на: комментарий от XVilka

Ну ответа на вопрос про переменные к сожалению найти не смог по ссылке первой есть, запуск нескольких команд, объединение |, немного grep ~addres[1] и перенаправление вывода в файл, есть ещё цикл по набору значений, и задание макроса.

Вот байты данных это не опкод, это поле с адресом, строки, вот как в консоли не вручную я могу взять это значение из текущей ячейки и высчитать адрес?

[0x00002a0c]> pf p
0x00002a0c = 0x00006308
[0x00002a0c]> px 2
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00002a0c  0863                                     .c
[0x00002a0c]> px 16 @0x406308
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00406308  4b45 524e 454c 3332 2e64 6c6c 0000 0000  KERNEL32.dll....
[0x00002a0c]> pf z @0x406308
0x00406308 = KERNEL32.dll

это пример из IOLY crackme0x01.exe можете проверить.

я пробовал разные переменные из https://radare.gitbooks.io/radare2book/content/introduction/expressions.html но тут под опкод заточена а это не опкод это указатель.

DR_SL ★★★★★
() автор топика

Собственно офф. твиттер ответил мне следующее.

Почти для всего можно использовать флаги (команда f?), если нужно что-то продвинутое, или встроенная замена/подстановка, то придется пользоваться полноценным bash shell черех обратные кавычки.

На вопрос про плагины, считаю отвечен, хотя не до конца раскурил документацию.

DR_SL ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.