• 汇编快速入门1


    From Codes to Executables

    image

    编译

    gcc file.c-o exe_file –m32生成可执行文件

    objdump –d –M intel  file              //-d 反汇编

    image这两条必备

    image函数的返回结果放在eax中,相当于return 0;

    804841f:    68 c0 84 04 08           push   0x80484c0
    8048424:    e8 b7 fe ff ff           call   80482e0   <puts@plt>

    主要的是这两句话

    puts 就是printf

                    

    类型

    Byte

    short

    2

    int

    4

    long

    4

    char

    1

    image定义一个char类型的变量。

    gcc bin1.c -o bin1 –m32

    objdump -d -M intel ./bin1

    image核心就是这两行

    0x41 =‘A’

    EBP栈底 栈底-1字节,分配一个字节的空间。

    image一看到这句就代表x=0xb x=11 给程序中的一个变量赋值

    DWORD 双字,四个字节byte

    WORD 单字,两个字节

    image

    int a=11;int b=22;int c=33;


    浮点数在存储时涉及到整数部分和小数部分

    double a=1.234;

    image

    QWORD

    fld //f load

    fstp //

    一看就是 处理浮点数

    。。。丢进IDA

    双击main函数 这个db代表double

    image双击这个地址

    image进去 dq 1.234数据 。rodata 只读段

    全局变量放在BSS段或者data段

    局部变量放在堆栈中

    从数据段中取了一个数付给eax

    丢进IDA分析

  • 相关阅读:
    SQL行列转换
    ASP.NET 〈%# 〉与〈%=〉的区别
    超级强大的 分页Sql存储过程
    ASP.Net 路径问题
    sql server分页
    JavaScript Rules2
    JavaScript Rules
    Draggable
    PHP面向对象编程静态变量(类变量)
    PHP 面向对象成员方法
  • 原文地址:https://www.cnblogs.com/rookieDanny/p/8453891.html
Copyright © 2020-2023  润新知