执行call指令跳转到printf@plt,PLT查找GOT条目。首次调用时GOT指向动态链接器解析函数,解析后填充printf真实地址到GOT。之后跳转到glibc的printf函数,处理格式字符串和参数sum的值-96,格式化为字符串。通过系统调用(如write)将结果输出到标准输出,最终显示“sum=-96”。 当执行call指令时,控制转到PLT表项。若首次调用,...
/*调用HAL_UART_Receive_IT会进入HAL_UART_RxCpltCallback这个回调函数*/ /*用于接收指定长度的数据*/ /*** */ /* void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance == USART1) { HAL_UART_Transmit_IT(&huart1, rx_buffer,2); HAL_UART_Receive_IT(&huart1, rx...
设置串口接收中断回调函数 void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){if(huart->Instance == USART1) /* 接收未完 */{if((g_usart_rx_sta & 0x8000) == 0) /* 接收到了0x0d */{if(g_usart_rx_sta & 0x4000) /* 接收到了0x0d */{if(g_rx_buffer[0] != 0x0a){g_us...
0x08048411 : movl $0x8048520,(%esp) 0x08048418 : call 0x80482e8 <printf@plt> 0x0804841d : lea 0xffffffbb(%ebp),%eax 0x08048420 : mov %eax,(%esp) 0x08048423 : call 0x80482e8 <printf@plt> 0x08048428 : mov 0x80496c0,%eax 0x0804842d : mov %eax,0x4(%esp) 0x08048431 : movl ...
400538: e8 a3 fe ff ff callq 4003e0 <printf@plt> 40053d: c9 leaveq 40053e: c3 retq 40053f: 90 nop 其实只需要关心这行: mov $0x4005c8,%edi 这就是我们需要的地址: #define FUNCTION_ADDR ((uint64_t)0x4005c8 + 12) +12是非常必要的,因为我们的填充数据是从12个字符长度的“%*c%hn%...
%ecx 400524: ba 00 00 00 00 mov $0x0,%edx 400529: be 40 00 00 00 mov $0x40,%esi 40052e: bf c8 05 40 00 mov $0x4005c8,%edi 400533: b8 00 00 00 00 mov $0x0,%eax 400538: e8 a3 fe ff ff callq 4003e0 <printf@plt> 40053d: c9 leaveq 40053e: c3 retq 40053f: 90 ...
importmatplotlib.pyplotaspltdefprint_to_new_window(text):fig,ax=plt.subplots()ax.text(0.5,0.5,text,ha='center',va='center',fontsize=12)plt.show()print_to_new_window("Hello, World!") 1. 2. 3. 4. 5. 6. 7. 8. 在这段代码中,我们导入了matplotlib.pyplot库,并定义了一个函数print_to...
importmatplotlib.pyplotasplt# 数据x=[1,2,3,4,5]y=[1,4,9,16,25]# 创建图形plt.plot(x,y)# 设置标题和标签并调整字体大小plt.title("平方数图示",fontsize=24)plt.xlabel("数值",fontsize=18)plt.ylabel("平方值",fontsize=18)# 显示图形plt.show() ...
0x5555555548af call printf@plt <0x5555555546d0> 0x5555555548b4 mov eax, 0 不同环境,结果截然不同,程序的具体行为还需要自己上手调试来得出结论。 ex@Ex:~/test$ echo "%s" | ./a.out | hexdump -C 00000000 3a a8 10 8d cc 55 |:...U| 00000006 第四种:写入型...
%d" 400469: bf 01 00 00 00 mov $0x1,%edi 40046e: 31 c0 xor %eax,%eax 400470: e8 bb ff ff ff callq 400430 <__printf_chk@plt> 400475: 31 c0 xor %eax,%eax 400477: 48 83 c4 08 add $0x8,%rsp 40047b: c3 retq ...