逆向-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

相关推荐
2601_962296518 天前
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
汇编·预处理·链接·c/c++·编译过程
Freak嵌入式9 天前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
kyle~14 天前
x86 汇编LOCK前缀 --- 硬件架构向软件提供的核心同步原语
汇编·c++·性能优化·硬件架构·实时系统
典典分享指南15 天前
飞书 + 企业微信 + 微信文档多端协同实践指南
汇编·flask·intellij-idea·fastapi
极客互动API20 天前
企业微信 iPad 协议服务搭建与 AI 回调实战
网络·汇编·人工智能·微信·企业微信·ipad
wechatbot88825 天前
极客互动企业微信 SCRM 私域运营实战效果全景
大数据·汇编·微信·自动化·企业微信·rpa
祈禾1 个月前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
水饺编程1 个月前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
iCxhust1 个月前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
·薯条大王1 个月前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python