逆向-beginners之void返回值

#include <stdio.h>

void main()

{

printf("Hello,World\n");

}

#if 0

void main,则main不会明确返回任何值。不过在main退出时,EAX还会存有数据,会被传递给exit,成为后者的输入参数。通常EAX的值会是被调用方函数残留的确定数据,所以void类型函数的返回值,也就是主函数退出代码往往属于伪随机数(pseudorandom)。

#!/bin/sh

./hello_world

echo $?

./tst.sh

Hello,world!

14

这个14就是puts输出的字符的总数。

#endif

#if 0

/*

* intel

*/

0000000000001149 <main>:

1149: f3 0f 1e fa endbr64

114d: 55 push %rbp

114e: 48 89 e5 mov %rsp,%rbp

1151: 48 8d 3d ac 0e 00 00 lea 0xeac(%rip),%rdi # 2004 <_IO_stdin_used+0x4>

1158: e8 f3 fe ff ff callq 1050 <puts@plt>

115d: 90 nop

115e: 5d pop %rbp

115f: c3 retq

/*

* arm

*/

000000000040055c <main>:

40055c: a9bf7bfd stp x29, x30, [sp, #-16]!

400560: 910003fd mov x29, sp

400564: 90000000 adrp x0, 400000 <_init-0x3e8>

400568: 9118c000 add x0, x0, #0x630

40056c: 97ffffb9 bl 400450 <puts@plt>

400570: d503201f nop

400574: a8c17bfd ldp x29, x30, [sp], #16

400578: d65f03c0 ret

40057c: 00000000 .inst 0x00000000 ; undefined

#endif

相关推荐
2501_9277730711 分钟前
嵌入式——汇编语言1
汇编
山峰哥1 小时前
数据库工程核心:SQL调优让查询效率飙升的实战密码
网络·汇编·数据库·sql·编辑器
秋深枫叶红9 小时前
嵌入式第四十七篇——ARM汇编
汇编·arm开发·学习
jh10_10 小时前
嵌入式硬件DAY5(ARM汇编)
汇编·arm开发·嵌入式硬件
时空自由民.2 天前
I3C协议介绍
汇编·stm32·单片机
浩浩测试一下3 天前
高阶免杀技术掌握概览
汇编·安全·web安全·网络安全·系统安全·安全架构
听情歌落俗6 天前
ARM架构-硬件架构和汇编指令
汇编·arm开发·硬件架构
云qq6 天前
x86操作系统23——进程相关系统调用
linux·c语言·汇编·ubuntu
新鲜感~9 天前
汇编点灯基于SC32440
linux·汇编
fengye20716113 天前
板凳----------(枯藤 )vs2026+win10(第六章-4)
汇编