bc汇编指令用法_汇编指令imul 与 操作数

最近在练《天书夜读》,在2.3 C语言的数组与结构 章节里有如下代码(注:我用的是VS2005):

--- e:\practice\visual studio 2005\projects\reverseme\reverseme\reverseme.c ----

// ReverseMe.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

typedef struct{

int a;

int b;

int c;

}mystruct;

int myfunction(int a, int b)

{

00413570 push ebp

00413571 mov ebp,esp

00413573 sub esp,270h

00413579 push ebx

0041357A push esi

0041357B push edi

0041357C lea edi,[ebp-270h]

00413582 mov ecx,9Ch

00413587 mov eax,0CCCCCCCCh

0041358C rep stos dword ptr es:[edi]

unsigned char *buf[100];

mystruct *strs=(mystruct *)buf;

0041358E lea eax,[buf]

00413594 mov dword ptr [strs],eax

int i;

for (i=0; i<5; i++)

0041359A mov dword ptr [i],0

004135A4 jmp myfunction+45h (4135B5h)

004135A6 mov eax,dword ptr [i]

004135AC add eax,1

004135AF mov dword ptr [i],eax

004135B5 cmp dword ptr [i],5

004135BC jge myfunction+94h (413604h)

{

strs[i].a=0;

004135BE mov eax,dword ptr [i]

004135C4 imul eax,eax,0Ch

004135C7 mov ecx,dword ptr [strs]

004135CD mov dword ptr [ecx+eax],0

strs[i].b=1;

004135D4 mov eax,dword ptr [i]

004135DA imul eax,eax,0Ch

004135DD mov ecx,dword ptr [strs]

004135E3 mov dword ptr [ecx+eax+4],1

strs[i].c=2;

004135EB mov eax,dword ptr [i]

004135F1 imul eax,eax,0Ch

004135F4 mov ecx,dword ptr [strs]

004135FA mov dword ptr [ecx+eax+8],2

}

00413602 jmp myfunction+36h (4135A6h)

return 0;

00413604 xor eax,eax

}

逆向分析时发现里面有个乘法指令:

004135DA  imul        eax,eax,0Ch

怎么有3个操作数呢? 看着有点怪,哈哈、 天书夜读里作者说0Ch是单个元素的长度,之后用imul指令将元素下标去乘此长度.. ,然后不断的查资料..

imul        eax,eax,0Ch

IMUL 用于有符号数乘法运算

0Ch(第3个操作数)是乘数,eax(第2个操作数)里存放被乘数,运算结果放入eax(第1个操作数)。

注意:乘积是16位宽的有符号数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css设置导航栏背景颜色,更改bootstrap导航栏背景颜色和字体颜色

3 个答案:答案 0 :(得分&#xff1a;46)我使用以下CSS成功设置了Bootstrap导航栏的样式。你也没有在CSS中定义任何字体&#xff0c;这就是字体没有改变的原因。可以在here找到使用此CSS的网站。.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav…

UML 图例

对UML不是很了解&#xff0c;简单地了解一下UML设计中有的图例及基本作用。首先对UML中的各个图的功用做一个简单介绍&#xff1a; 1、用例图 描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统&#xff0c;以及他们使用该系统可以做些什么。一个用例图包含了多个模…

python计数器函数_Python计数器Counter

老男孩教育的PYTHON自动化开发课程自2013年第1期到现在已经走到了第12期&#xff0c;2年半的时间里&#xff0c;我们每一期都在对课程细节进行不同程度的优化&#xff0c;课程总时长也从最开始的2个月延长至第12期的五到六月&#xff0c;更新内容足足翻了一倍多&#xff0c;我们…

从物理服务器拷贝文件到容器,docker容器与物理机的文件传输—docker cp命令

ocker cp :用于容器与主机之间的数据拷贝。语法docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATHOPTIONS说明&#xff1a;-L :保持源目标中的链接实例将主机./vern目录拷贝到容器hssme的/home/cloudera目录下。docker c…

idea代码样式模板_阿里p3c(代码规范,eclipse插件、模版,idea插件)

阿里p3c一、说明代码规范检查插件p3c&#xff0c;是根据《阿里巴巴Java开发手册》转化而成的自动化插件。(高级黑&#xff1a;P-3C“Orion”&#xff0c;反潜巡逻机&#xff0c;阿里大概取p3c先进&#xff0c;监测&#xff0c;发现潜在问题的意思)二、源码地址下载下来之后为&a…

ajax require 用法,require.js使用方法整理

一、使用原因1、实现js异步加载&#xff0c;避免网页失去响应&#xff1b;2、管理模块之间的依赖性&#xff0c;便于代码编写和维护&#xff1b;二、使用说明1.加载require.js加载这个文件&#xff0c;也可能造成网页失去响应。解决办法有两个&#xff0c;一个是把它放在网页底…

根据数据库中的值用js设置RadioButtonList选中与否

function setcheck(id,ddd)//id表示控件ID号,ddd表示值{var radiolist id; for(var i0;i<document.getElementById(radiolist).rows.length;i) { for(var x0;x<document.getElementById(radiolist).rows[i].cells.length;x) { if(document.getElementById…

服务器与本地文件共享文件夹,云服务器对本地服务器共享文件夹

云服务器对本地服务器共享文件夹 内容精选换一换当您成功创建私有镜像后&#xff0c;镜像的状态为“正常”&#xff0c;您可以使用该镜像创建服务器实例或云硬盘&#xff0c;也可以将镜像共享给其他帐号&#xff0c;或者复制镜像到其他区域。私有镜像的生命周期如图1所示。远程…

rocksdb原理_教你玩转MyRocks/RocksDB—STATISTICS与后台线程篇

0. Intro在facebook的MySQL版本(以下称为MyRocks)中&#xff0c;RocksDB是可选的存储引擎。相比于InnoDB引擎&#xff0c;RocksDB的一个重要的优势是它使用更少的磁盘空间。在生产系统中&#xff0c;特别是用户数在亿级以上的互联网应用&#xff0c;磁盘空间是其中比较大的成本…

有效需求分析的基本流程

今天工作不算太忙&#xff0c;本来下午是要开会&#xff0c;由于这周的idea比较少&#xff0c;就把AT会议移到下周一起开&#xff0c;所有今天没有什么忙的&#xff0c;只是开了简单的idea评审会议&#xff0c;同时对组内的一些问题进行简单的整理&#xff0c;本来想整理出好的…

PHP Socket 编程

让我们以一个简单的例子开始---一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务.下面是相应的代码: PHP 代码: -------------------------------------------------------------------------------- <? // 设置一些基本的变量 $host "192.168.1.99";…

服务器可否替代手机芯片,基于ARM的处理器能取代桌面处理器吗?

科技的发展速度太快了&#xff0c;从手机进入智能时代开始&#xff0c;手机处理器的速度也越来越快了&#xff0c;以前人们办公都是在电脑端进行的&#xff0c;随着手机的功能越来越多&#xff0c;手机处理器速度越来越快&#xff0c;已经有一小部分的工作可以在手机上完成了。…

tr闭包_嵌套函数及闭包

这篇文章其实是要讲闭包的一些初级应用&#xff0c;但是为了将闭包&#xff0c;我们还是从嵌套函数开始说吧&#xff0c;纵使所有的JavaScript函数都可以说是闭包&#xff0c;但是只有当一个嵌套函数被导出到它所定义的作用域之外时&#xff0c;这种闭包才是有趣的。【嵌套函数…

转]从一个男人关注的事情上 可以看出他的修养和抱负

一、拥有自信和风度 男人到了二十几岁后&#xff0c;就要开始学着用心去经营自己了&#xff0c;它体现在自己的思想与涵养上。自信是一个男人最重要的品质&#xff0c;自信的男人就你像一只在暴风雨中战斗的海鸥。海鸥所要说的只有一句话“让暴风雨来的再猛烈些吧”&#xff0…

python歌星大奖赛_在歌星大奖赛中,有10个评委为参赛选手打分,分数为1到100分。...

/*********************************************************************************** 功能描述&#xff1a; 求一个比赛的选手成绩** 作 者&#xff1a; 郭强生** 修改日期&#xff1a; 2012-08-06** 备 注&#xff1a; 在歌星大奖赛中&#xff0c;有10…

投资最重要的事读后感_《投资最重要的事》读书笔记

《投资最重要的事》读书笔记《投资最重要的事》作者详细阐述了“第二层次思维”、价格/价值关系、耐心等待机会、以及多元化投资等概念&#xff0c;对自身的决策以及偶尔的失误做出了坦诚的评价&#xff0c;为读者进行批判性思考、风险评估、建立投资策略提供了宝贵的经验教训&…

VS2010 RTM

Visual Studio 2010 已经RTM并且在Msdn subscription提供了下载和试用版本&#xff0c;为了迎接这一产品&#xff0c;我在这个周末格式化了系统分区重新安装了Windows 7 x64。 在最新的Visual Assist配合下&#xff0c;整个IDE较之之前的版本更加舒适。 比如&#xff0c;选中的…

python搭建分布式集群_利用python的dask搭建分布式集群

一、dask介绍优势&#xff1a;dask内部自动实现了分布式调度、无需用户自行编写复杂的调度逻辑和程序&#xff1b;通过调用简单的方法就可以进行分布式计算、并支持部分模型的并行化处理&#xff1b;内部实现的分布式算法&#xff1a;xgboost、LR、sklearn的部分方法等用一句话…

【J2EE设计模式】模型-视图-控制器模式(MVC模式)

MVC将用户接口分割成3个截然不同的部分。 一、视图 状态无关的组件&#xff0c;从模型中读取数据&#xff0c;简单的把模型中的值转化为对客户端有用的格式。 二、控制器 协调请求处理&#xff0c;将用户输入转变为模型更新和视图 。它就像一个主管&#xff0c;首先策划要做哪些…

HttpURLConnection简单用法

HttpURLConnection为javaAPI提供的一种Rest访问的方式。其支持对Post,Delete,Get,Put等方式的访问。 以下为对于HttpURLConnection对Post等方式访问的一段代码。 view plaincopy to clipboardprint? 1. package com.sw.study.urlConnection; 2. 3. import java.io.Bu…