首页 > 其他分享 >逆向——如何区分全局变量和局部变量

逆向——如何区分全局变量和局部变量

时间:2023-04-02 18:23:28浏览次数:38  
标签:逆向 内存地址 函数 int 局部变量 main 全局变量

第三节 局部变量与全局变量的区别

记住知识点:

1、全局变量,在程序生成后,内存地址是固定了,只有重新编译后内存地址才会改变

2、全局变量,在汇编中是内存地址的格式存储;局部变量是以[ebp-xxx]的格式存储。

 

 


局部变量与全局变量的区别

全局变量与局部变量的区别在于作用域的不同,且存在时间也可能不同。不管有不有外部的变量,main函数中的变量都不能称为全局变量。

全局变量是可以被本程序所有对象或函数引用。

例:

 

 

图中的代码,t1为全局变量,可以在main函数中使用,也可以在a函数中使用。

而t2 t3则为局部变量,它们只能在花括号内部被使用。

所以a函数不能使用t2,main函数也不能使用t3。

 

 

 

 

第四课 内存图

 

 

 

 


int globalVar = 1;                             //全局、局部变量存储在数据段
static int staticGlobalVar = 1;

void Test()
{
    static int staticVar = 1;

    int localVar = 1;
    int num1[10] = { 1, 2, 3, 4 };

    char char2[] = "abcd";
    char* pChar3 = "abcd";

    int* ptr1 = (int*)malloc(sizeof (int)* 4);
    int* ptr2 = (int*)calloc(4, sizeof(int));
    int* ptr3 = (int*)realloc(ptr2, sizeof(int)* 4);

    free(ptr1);
    free(ptr3);
}

上述代码分别存储在什么地方呢?思考一下吧 ヾ(✿゚▽゚)ノ
如下是内存区域划分图,跟刚才你想的一样吗 ?????

 

 

 

标签:逆向,内存地址,函数,int,局部变量,main,全局变量
From: https://www.cnblogs.com/bonelee/p/17280945.html

相关文章

  • WebAssembly逆向
    一、WebAssembly简介WebAssembly是一种可以使用非JavaScript编程语言编写代码,并且能在浏览器上运行的技术方案。借助Emscripten编译工具,能将C/C++文件转成wasm格式,JavaScript可以直接调用该文件并执行其中的方法。好处可以隐藏核心逻辑,增大逆向难度提高执行效率(基于C/......
  • re/【unity】游戏逆向首试 [BJDCTF2020]BJD hamburger competition
    本题是是一个unity游戏,而且是以c#和.net编写尝试直接用idea进行反汇编,但是没有找到运行逻辑,后来在大佬的wp上发现是利用dnspy对c#的dll文件进行返回编,进而获得结果。反汇编BJDhanburgercompetirion_Data中的Assembly-CSharp.dll即可获得如下代码段:可以看到先利用sha1进行加......
  • 逆向——浮点数的表示,遇到了就去在线查吧,还原起来比较难受
    第二节2.5数据类型与存储 浮点数这玩意自己去在线转换下就行了: http://www.styb.cn/cms/ieee_754.php     详细:         第二节2.6浮点数的存法记住知识点:1、小数点左移,指数部分:指数减1的二进制数  2、小数点右移,指......
  • C语言逆向——如何寻找main入口,一个反汇编成C的实战练习
    第二节2.3找程序的入口原文:https://www.showdoc.com.cn/fengxin1225/7054696489361869控制台应用程序的main函数入口在OD中找到以上其他中的函数,然后跟着3个参数的CALL就是main例:———————————————————- 第二节2.4.1逆向并还原为C代码(网上解答)......
  • C语言逆向汇编——参数局部变量、函数堆栈、调用约定和内嵌汇编码
    第一节1.1C语言1、注意参数和局部变量在堆栈中的存储方式2、参数在调用函数前就已经存入堆栈,从[EBP+8]、[EBP+C]、……开始。3、局部变量是在调用函数后,存入缓冲区里,从[EBP-4]、[EBP-8]、……开始4、函数运算得到的结果,通常存在EAX里。        第一......
  • 项目一众筹网06_01_【权限控制】角色和权限分配、Admin分配Role、Role分配Auth、前端j
    系列文章目录众筹网文章目录系列文章目录01-角色和权限分配-引入02-Admin分配Role-目标和思路03Admin分配Role创建中间表有些表是不需要实体类的自然也就不需要做逆向工程04-Admin分配Role-前往分配页面-handler方法05-Admin分配Role-前往分配页面-Service方法和SQL06-Admin分......
  • webpack逆向
    一、webpack大致处理流程方式一:手动处理先全局定义一个变量(比如aaa),用于接收加载器中的导出函数再定义一个全局变量(比如bbb),用于接收具体模块中的加密对象或方法补模块、环境(通过日志调试,根据报错信息去抠代码,技巧:数组索引操作可以转换为对象)手动调用加载,使得全局定义的变量......
  • 【Android 逆向】apk反编译后重打包
    1.执行apktoolbsmali_dirsmali_dir为反编译出来的数据目录执行后可能会报错I:Buildingresources...W:/root/Desktop/tmp/qimao_dir/qimao_v5.4/AndroidManifes......
  • 【Android逆向】apk 反编译
    1.Kali搭建apktool环境1.访问apktool官网https://ibotpeaches.github.io/Apktool/install/参考红圈里的步骤处理即可2.执行命令反编译apkapktoold./xxxx_v5.4......
  • 【Android逆向】定位native函数在哪个so中方法
    1.在逆向过程中经常需要定位方法在哪个so中,而app加载的so很多,比如那么如何快速定位方法在哪里呢2.比如如下案例,首先看日志03-2811:01:56.4571456614566DKM-NATI......