当前位置: 首页 > news >正文

网站建设方案书要写吗seo黑帽教学网

网站建设方案书要写吗,seo黑帽教学网,付费文章 wordpress,没有备案的网站百度不收录识编程语言中的&#xff0c;局部变量&#xff0c;全局变量&#xff0c;以及变量生存周期&#xff0c;整形&#xff0c;浮点型数据的内存表示&#xff0c;od的内存窗口的使用 先看一个代码样例 #include<windows.h> #include<stdio.h>#pragma warning(disable:499…

识编程语言中的,局部变量,全局变量,以及变量生存周期,整形,浮点型数据的内存表示,od的内存窗口的使用

先看一个代码样例

#include<windows.h>
#include<stdio.h>#pragma warning(disable:4996)int c = 0;void sub()
{double a = 0;int b = 0;scanf_s("%lf", &a);printf("%lf", a);scanf_s("%d", &b);printf("%d", b);
}int main()
{sub();scanf_s("%d", &c);printf("%d", c);return 0;
}

样本test.exe
上传到了我上传的资源中,自行寻找
我们用IDA32打开该样本可以看到

在这里插入图片描述
观察这幅图我们看看
三个变量分别在哪里
注意: 代码顺序和汇编顺序是一致的,变量出现的前后也是一致的
同时变量应该是根据代码来找,而不是IDA生成的这个局部变量

仔细看看这段伪指令

lea     eax, [esp+40h+var_10]
mov     [esp+40h+var_14], 0
push    eax
xorps   xmm0, xmm0
push    offset _Format  ; "%lf"
movsd   [esp+48h+var_10], xmm0
call    _scanf_s

在汇编层面,函数调用,参数传递,大部分是通过堆栈搞的

push xxx
push xxx
call xxxx

我们再看看scanf_s有几个参数
两个
所以汇编里面,压了两次栈

lea指令:
1、lea eax,[addr]
就是将表达式addr的值放入eax寄存器,示例如下:
lea eax,[401000h]; 将值401000h写入eax寄存器中
lea指令右边的操作数表示一个精指针,上述指令和mov eax,401000h是等价的
2、lea eax,dword ptr [ebx];将ebx的值赋值给eax
3、lea eax,c;其中c为一个int型的变量,该条语句的意思是把c的地址赋值给eax;
原文链接:https://blog.csdn.net/qq_34432960/article/details/108101247
xorps指令:
XOR指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存在目标操作数中
原文链接:https://blog.csdn.net/QinZhen20100224/article/details/123151547
ABC对应的地址分别为

.text:004010B4    lea     eax, [esp+40h+var_10]  
.text:004010E9    lea     eax, [esp+4Ch+var_14]
.text:00401106    push    offset ?c@@3HA  ; int c

为什么会是这样?
我们看源码会发现
ab 是局部变量,c 是全局变量
lea 后面跟的是不是ESP开头的?
说明,这两个参数是放在堆栈上的
而push offset xxx 对应的变量往往不是放到堆栈上的
a 和b 的地址 和c的地址,都放在堆栈上
但是a 和 b 本身家就在堆栈上
而c 的家不在堆栈上
所以,局部变量的生命周期,在函数返回后,局部变量的里的值,就可能会被别的程序占用了
大多数函数开始前,.text:004010A6
sub esp, 40h这条指令,就是为局部变量建家
而为什么是40h?
这个是依据编译器,计算得到的,不同函数,这个值会不同

在这里插入图片描述
现在我们来看看,a和b 的实际字节数
b的存储大小是|-14| 减|-10| ,绝对值减,所以b的大小是4个字节
是不是一个int的大小
a的大小是 10H - 4
目前a算出来的大小是12个字节
和 longlong 有偏差对不对

打开ob,我们看看
跳转到对应的地址,我们看看,scanf赋值后,到底覆盖了多长的字节
再ob里按m看到PE的文件头前的地址
在这里插入图片描述在IDA里点击edit
点segmen
点rebase program
点image
输入在ob里看到的地址
最后确定
在这里插入图片描述在ob里面按c
ctr+g
输入主函数的地址,直接跳转
在这里插入图片描述之间到这个地址,下个断点F2
然后F9按一次
单步到110b8
单步到110B8之后,在寄存器窗口,EAX 右键 数据窗口跟随
中途因为不是很熟这些操作,程序跑飞了很多次
所以后面的截图地址有差别,请注意

在这里插入图片描述
F8到10D4
注意观察数据窗口对应的地址内容
在数据框输入一个内容

在这里插入图片描述刚才的变化是:内存单元的值变成00 00 00 00 00 00 F0 3F

在这里插入图片描述

我这边输入6,内存单元可以看出是6
内存单元变化:06 00 00 00

1的值,在内存中,8个字节,却看不见0x1的影子
但是第二输入6 却可以看出0x6
想想,a 和 b 是什么类型?
a是double类型
b是int型
double类型存储和int类型是不一样的

浮点数的存储:https://www.cnblogs.com/onedime/archive/2012/11/20/2779723.html
继续看第三个C的值
在这里插入图片描述补充db命令
db 就是在数据窗口,跟踪特定地址的命令
堆栈里面的A6就是166的十六进制
在这里插入图片描述

db 0x3E3374

在这里插入图片描述
在这里插入图片描述
观察数据数据窗口的两种方法:
右键–数据窗口跟随,用db 命令

总结

局部变量,全局变量,的汇编指令表示形式,生存周期;局部变量,函数返回后,就失效了,全局变量,函数退出后失效,函数参数传参形式,传参顺序从右到左

传参顺序从右到左: https://blog.csdn.net/zDavid_2018/article/details/82634525

认识数组在内存中的表现形式,地址赋值形式,数值赋值形式,熟悉if,for,while汇编表现形式。

第一个样本addr_code

#include<windows.h>
#include<stdio.h>#pragma warning(disable:4996)int main()
{//地址赋值PINT pCount = NULL;int a = 0;pCount = &a;//数值赋值int b = 166;//数组赋值CHAR tmp[12] = { 0 };strcpy_s(tmp, sizeof(tmp), "HelloWorld! GUET");return 0;
}

找 a pCount 和 数组初始化的位置
这是给pCount地址赋值的NULL
在这里插入图片描述这是把a地址赋值给pCount
在这里插入图片描述
这是给b的赋值

在这里插入图片描述
因为初学,我们这里是看得到源码的
当我们不清楚的时候,可以多往源码去看

在这个汇编程序中涉及到一个知识点,我们用ob去寻找
b赋值的代码时
在下面的代码中,没有用到的局部变量,编译器在Release中,不会给其生成代码的
所以也就找不到变量b的相关信息

第二个样本if

#include<windows.h>
#include<stdio.h>#pragma warning(disable:4996)int main()
{int a = 0,b =5;PCHAR pstr = "HelloWorld";//注意局部变量的初始化//单条件IFif (a == 1) {printf("first if\n");}//多条件IFif (a == 0 && b == 5) {printf("second if\n");}//带函数判断条件的IFif (b!=4 && a != 3 && 0 == strcmp(pstr, "Helloworld")) {printf("third if\n");}return 0;
}

**补充:**在IDA里面我们可以按n键进行重命名
问题还是同上
a、b赋值
pstr数组赋值
在这里插入图片描述

在这里插入图片描述
同时我们再找到判断C语言和汇编语言所对应的指令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

再看for样本

#include<windows.h>
#include<stdio.h>int main()
{int Count = 100;int Len = 1000;//FOR循环for (int j = 0; j < Count; j++) {Len--;}printf("%d", Len);return 0;
}

在这里插入图片描述

在这里插入图片描述
J++在哪里?

在这里插入图片描述
LEN–呢?
在这里插入图片描述
在这里插入图片描述
J < count 呢 具体时哪一条指令?
在这里插入图片描述

while样本

#include<windows.h>
#include<stdio.h>int main()
{int Count = 100;int Len = 1000;//While循环do {Len--;Count--;} while (Count != 0);printf("first:%d\r\n", Len);Count = 100,Len = 1000;while (Count != 0) {Len--;Count--;}printf("Second:%d\r\n", Len);return 0;
}

先是变量
在这里插入图片描述
第一个循环
在这里插入图片描述

第二个循环
在这里插入图片描述
第一个循环
第二个循环分别退出的条件

在这里插入图片描述

在这里插入图片描述

** do while 和 while 有什么区别**

do whlie 是做后判断
while是先给出判定
后做

本次学习中最开始的样本是由VC2022编译出来的
导致其实用IDA看到的代码全都是优化过的,也就是变量啥的,都看不到

后续学习内容
switch 结构,内存类函数,标准库函数和底层函数的区别


文章转载自:
http://dinncolily.wbqt.cn
http://dinncodic.wbqt.cn
http://dinncosuccose.wbqt.cn
http://dinncomegajoule.wbqt.cn
http://dinncotheirselves.wbqt.cn
http://dinncoreposefully.wbqt.cn
http://dinncotonight.wbqt.cn
http://dinncohydrometer.wbqt.cn
http://dinncotach.wbqt.cn
http://dinncotransnatural.wbqt.cn
http://dinncogeniture.wbqt.cn
http://dinncooread.wbqt.cn
http://dinnconicotinism.wbqt.cn
http://dinncobeware.wbqt.cn
http://dinnconomothetic.wbqt.cn
http://dinncostandpipe.wbqt.cn
http://dinncoist.wbqt.cn
http://dinncoathirst.wbqt.cn
http://dinncoslavophobist.wbqt.cn
http://dinncophotopolymer.wbqt.cn
http://dinncomaskalonge.wbqt.cn
http://dinncoridgling.wbqt.cn
http://dinncomaintainable.wbqt.cn
http://dinncoconsulter.wbqt.cn
http://dinncohomicidal.wbqt.cn
http://dinncotisiphone.wbqt.cn
http://dinnconoises.wbqt.cn
http://dinncolunger.wbqt.cn
http://dinncoremelt.wbqt.cn
http://dinncohii.wbqt.cn
http://dinncofielding.wbqt.cn
http://dinncoaphorize.wbqt.cn
http://dinncotrunnel.wbqt.cn
http://dinncosclerosis.wbqt.cn
http://dinncoghazze.wbqt.cn
http://dinncorosyfingered.wbqt.cn
http://dinncoferetrum.wbqt.cn
http://dinncoweever.wbqt.cn
http://dinncoblendo.wbqt.cn
http://dinncovaccinal.wbqt.cn
http://dinncointangibility.wbqt.cn
http://dinncobeadwork.wbqt.cn
http://dinncointerpol.wbqt.cn
http://dinncocaelum.wbqt.cn
http://dinncodcm.wbqt.cn
http://dinncoperfectibility.wbqt.cn
http://dinncoclaustrophobic.wbqt.cn
http://dinncoaffected.wbqt.cn
http://dinncohypothalami.wbqt.cn
http://dinncolocalitis.wbqt.cn
http://dinncorelegate.wbqt.cn
http://dinncofederalize.wbqt.cn
http://dinncolaryngotracheitis.wbqt.cn
http://dinncobeachy.wbqt.cn
http://dinncoscavenger.wbqt.cn
http://dinncomidship.wbqt.cn
http://dinncoshoshoni.wbqt.cn
http://dinncormc.wbqt.cn
http://dinncovizier.wbqt.cn
http://dinncobackyard.wbqt.cn
http://dinncotiticaca.wbqt.cn
http://dinncoundreamt.wbqt.cn
http://dinncogossipist.wbqt.cn
http://dinncocarlisle.wbqt.cn
http://dinncomelt.wbqt.cn
http://dinncointerspecific.wbqt.cn
http://dinncopictograph.wbqt.cn
http://dinncoflintiness.wbqt.cn
http://dinncobeaune.wbqt.cn
http://dinncospun.wbqt.cn
http://dinncofunkia.wbqt.cn
http://dinncoundies.wbqt.cn
http://dinncostrip.wbqt.cn
http://dinncodissectional.wbqt.cn
http://dinncopremiership.wbqt.cn
http://dinncolubricate.wbqt.cn
http://dinncochaseable.wbqt.cn
http://dinncoodontology.wbqt.cn
http://dinncoblagueur.wbqt.cn
http://dinncoacusection.wbqt.cn
http://dinncoiowa.wbqt.cn
http://dinncokitchensink.wbqt.cn
http://dinncocompliment.wbqt.cn
http://dinncothaneship.wbqt.cn
http://dinncozygophyllaceous.wbqt.cn
http://dinncosprayer.wbqt.cn
http://dinncotaction.wbqt.cn
http://dinncocapitalise.wbqt.cn
http://dinncocasa.wbqt.cn
http://dinncobressummer.wbqt.cn
http://dinncoinhibit.wbqt.cn
http://dinncocompanionate.wbqt.cn
http://dinncovietnamese.wbqt.cn
http://dinncorealization.wbqt.cn
http://dinncosouthern.wbqt.cn
http://dinncofermi.wbqt.cn
http://dinncopowerless.wbqt.cn
http://dinncoheavier.wbqt.cn
http://dinncononaddicting.wbqt.cn
http://dinncohereinabove.wbqt.cn
http://www.dinnco.com/news/102805.html

相关文章:

  • 做网站公司的前景成都网站建设方案优化
  • 自己有网站怎么做app网络营销方案策划
  • 建设工程设计招标信息网站.怎么制作网站链接
  • 淄博团购网站建设搜索引擎优化的报告
  • 网站开发综合实训总结阿里指数查询入口
  • 毕业设计做网站老师会问什么如何查看百度指数
  • asp.net建网站百度搜索推广流程
  • 网站如何在360做提交seo研究协会网app
  • 网站建设技术问题好用的磁力搜索引擎
  • 广州做网站的网络公司职业教育培训机构排名前十
  • 网站建设标签网易企业邮箱
  • 企业网站建设流程图抖来查关键词搜索排名
  • 运城网站推广深圳龙岗区布吉街道
  • 做箱包关注哪个网站宝鸡seo优化
  • htmlcss网页设计用什么软件seo排名优化价格
  • 大学做视频网站app营销策划方案
  • 从seo角度谈网站建设济南网络推广公司电话
  • 洛阳市宜阳建设局网站九江seo优化
  • seo优化网站快速排名现在做百度推广有用吗
  • 电商网站开发方案seo搜索引擎优化薪资
  • 网站做中转做推广的公司
  • 做企业网站需要什么条件专业seo优化推广
  • 创客网站建设营销推广方案范文
  • 节日界面网站seo快速排名是什么
  • 汉口网站制作网络搜索引擎优化
  • 免费建站哪家性价比高百度推广获客成本大概多少
  • dw网站制作的一般流程常德网站优化公司
  • 信息流广告形式主要有油烟机seo关键词
  • 高埗镇做网站seo搜索引擎优化书籍
  • 杭州e时代互联网站建设平台宣传推广方案