Cutter/Radare2 的功能反汇编的布局是什么意思?
逆向工程
雷达2
2021-07-06 15:26:00
2个回答
这个查询与逆向工程有关
184 是函数的大小,你可以使用 afi 来检查函数的大小是多少
[0x01012d6c]> afil
address size nbbs edges cc cost min bound range max bound calls locals args xref frame name
========== ==== ===== ===== ===== ==== ========== ===== ========== ===== ====== ==== ==== ===== ====
0x01012d6c 626 43 62 23 290 0x0101217f 110918 0x0102deb2 19 6 3 0 112 entry0
[0x01012d6c]>
绿线代表基本块边界/跳转到/从等跳转
你可以禁用它们
e asm.lines = false
为什么知道这是你的二进制文件的两次跳转可能是你必须确定的手工代码
你可以有 n 次无条件跳转,一个低于另一个
假设你有这样的代码
#include <stdio.h>
__declspec (naked) void foo(void) {
goto jumphere;
jumpthere:
goto dowork;
jumphere:
goto jumpthere;
dowork:
printf ("i came here after jumping through hoops\n");
}
void main(void){
foo();
}
如果你反汇编 foo() 你可以看到像你在屏幕截图上显示的跳转
[0x00401358]> af @0x401000
[0x00401358]> pdf @0x401000
;-- section..text:
/ (fcn) fcn.00401000 20
| fcn.00401000 ();
| ,=< 0x00401000 eb06 jmp 0x401008 ; [00] -r-x section size 249856 named .text
..
| || ; CODE XREF from fcn.00401000 (0x401008)
| ,.---> 0x00401004 eb04 jmp 0x40100a
..
| ||||| ; CODE XREF from fcn.00401000 (0x401000)
| ||```-> 0x00401008 ebfa jmp 0x401004
| || ; CODE XREF from fcn.00401000 (0x401004)
| ``----> 0x0040100a 68a0e14300 push str.i_came_here_after_jumping_through_hoops ; 0x43e1a0 ; "i came here after jumping through hoops\n"
| 0x0040100f e85c000000 call fcn.00401070
| 0x00401014 83c404 add esp, 4
\ 0x00401017 cc int3
[0x00401358]> e asm.lines= false
[0x00401358]> pdf @0x401000
;-- section..text:
(fcn) fcn.00401000 20
fcn.00401000 ();
0x00401000 eb06 jmp 0x401008 ; [00] -r-x section size 249856 named .text
..
; CODE XREF from fcn.00401000 (0x401008)
0x00401004 eb04 jmp 0x40100a
..
; CODE XREF from fcn.00401000 (0x401000)
0x00401008 ebfa jmp 0x401004
; CODE XREF from fcn.00401000 (0x401004)
0x0040100a 68a0e14300 push str.i_came_here_after_jumping_through_hoops ; 0x43e1a0 ; "i came here after jumping through hoops\n"
0x0040100f e85c000000 call fcn.00401070
0x00401014 83c404 add esp, 4
0x00401017 cc int3
[0x00401358]>
我不知道184是什么意思;也许您应该向右滚动左窗格以查看它是否出现在那里以及该列的名称是什么。
关于左侧的管道,这些是从出现在顶部的功能延伸的箭头:这些只是向下延伸的“线”,因此您将能够跟踪分支源/目的地。
其它你可能感兴趣的问题

