看TheShellcoderbook不明白之处,求解释

jimette 2013-06-26 11:20:15
0x8048430 <triangle>: push %ebp
0x8048431 <triangle + 1>: mov %esp, %ebp
0x8048433 <triangle + 3>: push %edi
0x8048434 <triangle + 4>: push %esi
0x8048435 <triangle + 5>: sub $0x30, %esp

0x8048438 <triangle + 8>: lea 0xffffffd8(%ebp), %edi //这一句
0x804843b <triangle + 11>: mov $0x8049508, %esi //这一句

0x8048440 <triangle + 16>: cld
0x8048441 <triangle + 17>: mov $0x30, %esp
0x8048446 <triangle + 22>: repz movsl %ds:(%esi), %es:(%edi)
0x8048448 <triangle + 24>: mov 0x8(%ebp), %eax
0x804844b <triangle + 27>: mov %eax, %edx
0x804844d <triangle + 29>: imul 0xc(%ebp), %edx
0x8048451 <triangle + 33>: mov %edx, %eax

0x8048453 <triangle + 35>: sar $0x1f, %eax//这一句
0x8048456 <triangle + 38>: shr $0x1f, %eax//这一句
0x8048459 <triangle + 41>: lea (%eax, %edx,1), %eax//这一句
0x804845c <triangle + 44>: sar %eax//这一句
0x804845e <triangle + 46>: mov %eax, oxffffffd4(%ebp)//这一句
0x8048461 <triangle + 49>: mov 0xffffffd4(%ebp), %eax//这一句
0x8048464 <triangle + 52>: mov %eax, %eax//这一句

0x8048466 <triangle + 54>: add $0x30, %esp
0x8048469 <triangle + 57>: pop %esi
0x804846a <triangle + 58>: pop %edi
0x804846b <triangle + 59>: pop %ebp
0x804846c <triangle + 60>: ret

在 vs2010反汇编没这么复杂

求i解释
...全文
499 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2013-08-09
  • 打赏
  • 举报
回复
jimette 2013-07-17
  • 打赏
  • 举报
回复
www_adintr_com 2013-06-27
  • 打赏
  • 举报
回复
这是 at&t 风格的汇编,unix 下一般用这种 lea 0xffffffd8(%ebp), %edi 等价于 mov edi,[ebp-自己转补码算] 0x804843b <triangle + 11>: mov $0x8049508, %esi 这一句很简单呀 mov esi, 0x8049508 0x8048453 <triangle + 35>: sar $0x1f, %eax//这一句 0x8048456 <triangle + 38>: shr $0x1f, %eax//这一句 0x8048459 <triangle + 41>: lea (%eax, %edx,1), %eax//这一句 0x804845c <triangle + 44>: sar %eax//这一句 0x804845e <triangle + 46>: mov %eax, oxffffffd4(%ebp)//这一句 0x8048461 <triangle + 49>: mov 0xffffffd4(%ebp), %eax//这一句 0x8048464 <triangle + 52>: mov %eax, %eax//这一句 依次翻译为: sar eax, 1fh shr eax, 1fh lea eax, [eax + edx * 1] sar eax mov eax,[ebp - 自己算] mov [ebp - 自己算], eax mov eax,eax
www_adintr_com 2013-06-27
  • 打赏
  • 举报
回复
看不懂, 似乎没什么作用, 全是空操作, 它是不是想在代码段构造出特定的数据来哦, 看看这些代码对应的机器码有没有什么含义呢
jimette 2013-06-27
  • 打赏
  • 举报
回复
0x8048459 <triangle + 41>: lea (%eax, %edx,1), %eax//这一句 0x804845c <triangle + 44>: sar %eax//这一句 0x804845e <triangle + 46>: mov %eax, oxffffffd4(%ebp)//这一句 0x8048461 <triangle + 49>: mov 0xffffffd4(%ebp), %eax//这一句 0x8048464 <triangle + 52>: mov %eax, %eax//这一句 这几句是用来做什么的?
jimette 2013-06-27
  • 打赏
  • 举报
回复
sar $0x1f, %eax shr $0x1f, %eax 为什么右移两次31bit?
jimette 2013-06-27
  • 打赏
  • 举报
回复
引用 1 楼 adlay 的回复:
这是 at&t 风格的汇编,unix 下一般用这种 lea 0xffffffd8(%ebp), %edi 等价于 mov edi,[ebp-自己转补码算] 0x804843b <triangle + 11>: mov $0x8049508, %esi 这一句很简单呀 mov esi, 0x8049508 0x8048453 <triangle + 35>: sar $0x1f, %eax//这一句 0x8048456 <triangle + 38>: shr $0x1f, %eax//这一句 0x8048459 <triangle + 41>: lea (%eax, %edx,1), %eax//这一句 0x804845c <triangle + 44>: sar %eax//这一句 0x804845e <triangle + 46>: mov %eax, oxffffffd4(%ebp)//这一句 0x8048461 <triangle + 49>: mov 0xffffffd4(%ebp), %eax//这一句 0x8048464 <triangle + 52>: mov %eax, %eax//这一句 依次翻译为: sar eax, 1fh shr eax, 1fh lea eax, [eax + edx * 1] sar eax mov eax,[ebp - 自己算] mov [ebp - 自己算], eax mov eax,eax
大牛,字面意思我懂 只不过不知道那几句的作用
内容概要:本文系统介绍了进程的基本概念与核心原理,阐述了进程作为程序在计算机中一次运行活动的本质,是操作系统进行资源分配和调度的基本单位。文章详细解析了进程的五大特性——独立性、并发性、动态性、异步性和结构特征,并指出进程由程序代码、数据和进程控制块(PCB)三部分构成。同时,文中列举了进程在操作系统管理、多任务处理、服务器开发、嵌入式系统以及分布式系统中的广泛应用场景,并关联了操作系统、线程、PCB及进程调度等重要概念,最后归纳了进程相关的备考要点,涵盖生命周期、状态转换、调度算法及同步互斥机制等内容。; 适合人群:计算机专业学生、准备操作系统相关考试的学习者,以及从事系统编程、后端开发或嵌入式开发的技术人员;具备基本计算机组成和操作系统知识者更佳。; 使用场景及目标:①深入理解进程在操作系统中的角色与工作机制;②掌握进程生命周期、状态变化及调度策略;③为技术面试、考研复试或课程学习提供理论支持;④辅助设计高并发、多任务的应用系统。; 阅读建议:建议结合操作系统教材或实际代码案例对照学习,重点关注进程状态图、PCB结构和调度算法的实现,通过画图和模拟加深对同步与互斥机制的理解。
内容概要:本文档《测量不确定度在符合性判定中的应用》由中国合格评定国家认可委员会发布,旨在为合格评定机构在进行符合性判定时提供科学的技术指导。文档系统阐述了如何在判断被测对象是否满足规定限值要时,合理考虑测量不确定度及其对判定结果的影响,介绍了多种判定规则,如简单接受、准确度法、考虑测量能力指数和有保护带的判定规则,并深入讲解了合格概率、消费者与生产商风险的计算方法,强调通过风险评估优化接受区间设置,提升判定的科学性与公正性。; 适合人群:从事检测、校准、计量及合格评定工作的技术人员、实验室管理人员、质量控制人员以及相关领域的研究人员。; 使用场景及目标:① 在检测报告中科学地做出与规范或标准的符合性声明;② 设计合理的判定规则以控制错误接受(消费者风险)和错误拒绝(生产商风险);③ 基于测量不确定度和生产过程特性,优化接受限设置,支持实验室在合同评审阶段与客户协商确定判定策略;④ 支持计量检定、产品认证、环境监测、食品安全等领域中的合规性评价。; 阅读建议:此文档技术性强,涉及概率统计与测量理论,建议读者结合实际案例逐步理解各类判定规则的应用逻辑,重点关注第5章判定规则选择流程与第7章风险量化计算,宜配合标准文件如ISO/IEC 17025、GUM等一同学习,以全面掌握符合性判定中的不确定性管理方法。

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧