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

网站建设流行技术wordpress 写入权限设置

网站建设流行技术,wordpress 写入权限设置,建网站的域名是什么意思,陕西住房和建设厅网站本文会在IDA中分析数组#xff0c;结构体在内存中的存储 目录 IDA分析数组存储 IDA分析结构体存储 传递参数的方式 IDA分析数组存储 测试代码如下#xff1a; /************************************************************************/ /*Author : 玄都大… 本文会在IDA中分析数组结构体在内存中的存储 目录 IDA分析数组存储 IDA分析结构体存储 传递参数的方式 IDA分析数组存储 测试代码如下 /************************************************************************/ /*Author : 玄都大法师 /*Data : 2023/09/11 /*Description : 汇编学习/************************************************************************/#include stdio.hint main() {int arr[5] { 1, 2, 3, 4, 5 };int n 2;arr[2] 20;return 0; } 去除main函数的栈帧汇编留下有关数组的部分 .text:004143F5 mov [ebpvar_18], 1 .text:004143FC mov [ebpvar_14], 2 .text:00414403 mov [ebpvar_10], 3 .text:0041440A mov [ebpvar_C], 4 .text:00414411 mov [ebpvar_8], 5 .text:00414418 mov [ebpvar_24], 2 .text:0041441F mov eax, 4 .text:00414424 shl eax, 1 .text:00414426 mov [ebpeaxvar_18], 14h 进入到main函数的堆栈空间查看 数组在内存堆栈中存储是一段连续的空间数组名就是这段空间的首地址 得到数组地址是 0x00B5FEB4 在内存搜索 数组数据的存储是从首地址开始的 在IDA分析数组这是在对数组初始化[EBP-18h]就是数组的首地址 双击var_18进入main的堆栈空间修改var_18的名字为arr 把这段数据转换为数组形式需要设置整个数组的元素个数从首地址开始转换 IDA数组部分汇编发生了变化 可以总结出来一个公式访问数组的元素就是通过 数组首地址偏移量  arr[n] arr 4*n    分析如下 .text:004143F5 mov [ebparr], 1 ; 数组第一个元素 .text:004143FC mov [ebparr4], 2 ; 数组第二个元素 .text:00414403 mov [ebparr8], 3 ; 数组第三个元素 .text:0041440A mov [ebparr0Ch], 4 ; 数组第四个元素 .text:00414411 mov [ebparr10h], 5 ; 数组第五个元素 .text:00414418 mov [ebpvar_24], 2 ; int n 2; 给变量n赋值 .text:0041441F mov eax, 4 .text:00414424 shl eax, 1 ; 配合上一条 4 0100 shL偏移一位 .text:00414426 mov [ebpeaxarr], 14h ; 修改数组第三个元素 arr[2] 20; .text:0041442E xor eax, eax ; return 0 IDA分析结构体存储 测试代码 /************************************************************************/ /*Author : 玄都大法师 /*Data : 2023/09/11 /*Description : 汇编学习/************************************************************************/#include stdio.hstruct MyStruct {int nNum;float fNum;char chA; };void Print(MyStruct stc) {printf(int %d, y %f,z %c, stc.nNum, stc.fNum, stc.chA); }int main() {MyStruct stc {1, 2.2, A};stc.fNum 5.5;Print(stc);return 0; } 分析和结构相关的汇编代码 .text:004143E0 ; int __cdecl main_0(int argc, const char **argv, const char **envp) .text:004143E0 _main_0 proc near ; CODE XREF: _main↑j .text:004143E0 .text:004143E0 var_14 byte ptr -14h .text:004143E0 var_10 dword ptr -10h .text:004143E0 var_C dword ptr -0Ch .text:004143E0 var_8 dword ptr -8 .text:004143E0 argc dword ptr 8 .text:004143E0 argv dword ptr 0Ch .text:004143E0 envp dword ptr 10h .text:004143E0 .text:004143E0 push ebp .text:004143E1 mov ebp, esp .text:004143E3 sub esp, 0D4h .text:004143E9 push ebx .text:004143EA push esi .text:004143EB push edi .text:004143EC lea edi, [ebpvar_14] .text:004143EF mov ecx, 5 .text:004143F4 mov eax, 0CCCCCCCCh .text:004143F9 rep stosd .text:004143FB mov ecx, offset unk_41C003 .text:00414400 call j___CheckForDebuggerJustMyCode4 ; __CheckForDebuggerJustMyCode(x) .text:00414405 mov [ebpvar_10], 1 .text:0041440C movss xmm0, ds:dword_417BE0 ; 浮点数的存储应该和编译器有关 .text:00414414 movss [ebpvar_C], xmm0 ; 浮点数的赋值往往借助xmm0寄存器 .text:00414419 mov byte ptr [ebpvar_8], 41h ; A .text:0041441D movss xmm0, ds:dword_417BE4 ; 字符的赋值也是往往借助xmm0寄存器 .text:00414425 movss [ebpvar_C], xmm0 .text:0041442A sub esp, 0Ch ; 这种函数传参也很有意思 .text:0041442D mov eax, esp ; 把esp给eax通过eax来实现参数压入栈 .text:0041442F mov ecx, [ebpvar_10] .text:00414432 mov [eax], ecx ; [eax]是对eax存储的地址引用相当于 esp .text:00414434 mov edx, [ebpvar_C] .text:00414437 mov [eax4], edx .text:0041443A mov ecx, [ebpvar_8] .text:0041443D mov [eax8], ecx .text:00414440 call sub_4113C0 .text:00414445 add esp, 0Ch .text:00414448 xor eax, eax .text:0041444A push edx .text:0041444B mov ecx, ebp ; Esp .text:0041444D push eax .text:0041444E lea edx, Fd ; Fd .text:00414454 call j__RTC_CheckStackVars8 ; _RTC_CheckStackVars(x,x) .text:00414459 pop eax .text:0041445A pop edx .text:0041445B pop edi .text:0041445C pop esi .text:0041445D pop ebx .text:0041445E add esp, 0D4h .text:00414464 cmp ebp, esp .text:00414466 call j___RTC_CheckEsp .text:0041446B mov esp, ebp .text:0041446D pop ebp .text:0041446E retn .text:0041446E _main_0 endp 结构体赋值 分析print函数调用新的调用传参 .text:0041442A sub esp, 0Ch ; 这种函数传参也很有意思 .text:0041442D mov eax, esp ; 把esp给eax通过eax来实现参数压入栈 .text:0041442F mov ecx, [ebpvar_10] .text:00414432 mov [eax], ecx ; [eax]是对eax存储的地址引用相当于 esp .text:00414434 mov edx, [ebpvar_C] .text:00414437 mov [eax4], edx .text:0041443A mov ecx, [ebpvar_8] .text:0041443D mov [eax8], ecx .text:00414440 call sub_4113C0 .text:00414445 add esp, 0Ch 这种函数传参调用函数没有通过esp借助eax寄存器来寻址把参数入栈实际上效果和原来一样换汤不换药。 IDA中添加结构体 在IDA空白界面右击选择 Add struct type  或者空白处摁下insert  如果想要创建标准结构体就点击 add standard structure 输入名字 创建成功 在ends这一行摁下d就可以创建结构体元素在元素一行后面摁d可以修改大小 应用结构体 选到首个元素地址摁下y输入需要修改的结构体名称然后重命名 IDA的变化 结构体的特征给一段连续空间赋值数组也有但区别在于两者寻址方式不一样而且数组元素类型单一 传递参数的方式 方式一 push 0x1; push 0x2; push 0x3; 方式二 sub esp 0xC; mov [esp0x0],1; mov [esp0x4],2; mov [esp0x8],3; 方式三 sub esp 0xC; mov eax,esp;mov [eax0x0],1; mov [eax0x4],2; mov [eax0x8],3;
http://wiki.neutronadmin.com/news/220357/

相关文章:

  • 做网站还是微信小程序西宁网站建设君博解决
  • 阜宁做网站哪家好大型银行网站建设
  • 建设旅游网站的总结书店网站建设个人总结
  • 网站 架构 设计友情链接权重高的网站
  • 租房网站模板平潭做网站
  • 亚马逊网站开发设计免费软件怎么盈利
  • 制作企业网站是怎么收费的网站建设文化如何
  • 微信小程序制作商seo关键词推广多少钱
  • 石家庄电商网站开发网站制作软件图标
  • 网页设计与网站建设完全学习手册pdf接单干活的平台
  • 重庆建设银行网站首页长沙正规企业网站制作平台
  • 国外网页设计冯耀宗seo博客优化
  • 网站项目分析怎么做 方法有哪些企业宣传片报价明细
  • 山东做网站建设公司小程序制作第三方平台
  • 广州网站外包网站根目录多文件
  • 家用宽带做网站服务器公司注册网站多少钱
  • 网站制作哪些公司制作何炅做的代言网站
  • 姑苏网站建设东莞网站建设怎么做
  • cdr做好排班怎么做网站专业开发网站建设哪家好
  • 广州网站seo营销模板哪些人可以做网站
  • 旅行社网站模版emlog怎么换wordpress
  • 中国空间站科幻作文1000字前端和做网站
  • 十大招聘网站排行榜商标注册网址
  • 做网站用别人图片文章会侵权吗建筑工程网络设计
  • 网站制作知名公司做网站在后台如何添加链接
  • 虚拟会员商城网站分销温州小程序开发哪家好
  • 网站建设合同中的违约责任网站入口你会回来感谢我的
  • seo整站优化外包服务好的网站建设公司
  • 大学生做兼职的网站有哪些ppp项目建设交易网站
  • 网站结构方面主要做哪些优化锦州做网站