机器码-nasm汇编全局字符串变量的声明问题

问题描述

nasm汇编全局字符串变量的声明问题

功能:提示MessageBox消息
1:
bits 32
call func0
db 'user32.dll',0

func0:
mov eax,7c801d7bH ;LOADLIBRARYA
CALL eax
push 0

call Func1
db "Infomation",0

Func1:
call Func1_1
Func1_1:
call Func2
db "This exe was Injected Code.",0
Func2:
push 0

mov eax,7e4507eaH ; 7e4507eaH MESSAGEBOXA
call eax
mov eax,00401f50H ;

jmp eax

字符串放在函数下面 自动进行一次
push szStr 操作

2:
bits 32
assume cs:code,ds:data

call $Message
mov eax,00401f50H ;

jmp eax
$Message:
push ebp

mov ebp,esp

sub esp,0CH

push ebx
push esi
push edi
lea edi, [ebp-0CH]
mov ecx, 3H
mov eax, 0H

rep stosd

mov     eax, dllName
add     eax, esi
push    eax
mov     eax,7c801d7bH   ;   LOADLIBRARYA
CALL    eax

push 0
mov     eax, Msg1
add     eax, esi
push    eax
mov     eax, Msg2
add     eax, esi
push    eax
push    0
mov     eax,7e4507eaH  ; 7e4507eaH  MESSAGEBOXA
call    eax

pop     edi
pop     esi
pop     ebx
add     esp, 0CH
pop     ebp
ret

dllName db 'user32.dll',0

Msg1 db "Infomation",0

Msg2 db "This exe was Injected Code.",0

字符串作为全局
要想找到字符串地址需要
mov eax, Msg1
add eax, esi
机器码:
B857000000 mov eax, Msg
01F0 add eax, esi
0x00000057 + esi

总结:第一种方式可行 机器码嵌入其他exe,可以执行
第二中方式在C++代码中 执行这段机器码 可以执行。但是嵌入 其他exe不可以执行

提示:汇编生成机器码的工具是nasm 平台是在xp

求教nasm中怎么申明全局变量。这个问题一直没搞清楚>

时间: 2024-09-19 20:35:42

机器码-nasm汇编全局字符串变量的声明问题的相关文章

怎么使用全局的变量?

问题描述 怎么使用全局的变量??包括声明和设值以及取值 解决方案 解决方案二:ClasstestClass{publicstaticstringparame="全局变量";}//调用testClass.parame;

ios-在objective-c中使用全局/静态变量

问题描述 在objective-c中使用全局/静态变量 保存用作方法的变量,然后在另一个方法中调用.实现时会不会用到全局/外部/静态变量?如果需要应该怎么用? 我试过用全局和静态,但是都失败了. 代码中用来保存newX 和 newY 的信息. -(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{... int newX = (int)(Button.

JavaScript变量的声明学习笔记

变量的声明 JavaScript 使用关键字 var 来声明变量,可以先声明后赋值,也可以在声明的同时赋值,多个变量同时声明使用逗号(,)分隔.例如:  代码如下 复制代码 // 先声明,后赋值 var sex; sex="男"; // 声明的同时进行赋值 var age=22; var name="张三"; // 同时声明多个变量 var x=1,y=2,z=3;  // 声明多个变量时用逗号( ,)分开其中,sex.age.name ... 称为 变量名,&qu

Swift中常量和变量的声明

常量是在程序运行过程中,不会被修改的量.也就是说,常量一经赋值,就不能再次赋值了. 变量是在程序运行过程中,可以被多次赋值的量.也就是说,常量即使已经赋值,还可以再次赋值. 在C语言中,如果我们要声明常量,需要在类型前面加上const.例如,声明一个值为10的整型常量i的语句如下: const int i = 10; 在Swift中,我们使用let来声明常量,使用var来声明变量.例如,同样是声明一个值为10的整型常量i的语句如下: let i: Int = 10 声明一个值为20的整型变量j的

PHP变量的声明及变量的命名规则

以下三种写法中,哪种是正确的? 在php程序中,变量的命名规则是怎样的,以下三种写法中,哪种是正确的? 第1种: <?php   $myname='aa'; ?> 第2种: <?php   $myName='aa'; ?> 第3种: <?php   $MyName='aa'; ?> 经验分享 姓名,年龄: <?php /* *变量名字以$开头 *变量的名称声明时一定要有意义 *变量不能以数字开头命名,可以用下划线开头,$和变量名不能有空格 *变量名中不能出现运算符

全局变量与全局静态变量的区别

全局变量与全局静态变量的区别: (a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别. (b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的. 静态全局变量的作用: (a)不必担心其它源文件使用相同变量名,彼此相互独立. (b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改. 例如:一个程序由两个源文件组成,其中在一个源文件中定义了"int n;",在另一个源

ios-如何格式化字符串变量的数据?

问题描述 如何格式化字符串变量的数据? 在NSString存日期: 1900-01-01T11:00:00 需要进行格式化,然后加了一个格式器: NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"]; 如何进行格式化? NSString* formatedDateString = [df ???]; 解决方案 你要创建两个日期格式器.一个用于解析

php实现全局静态变量类的一种实现方式

变量|静态 下面是一个全局静态变量类,类里面的函数都是静态函数, 注意里面的符号"&",他用来进行地址引用的.如果对引用方式不熟悉,请先参考php手册中的相关的章节. 另外本例是仿照php的pear类库中,pear.php中的静态全局error的方法实现的. <?class StatVar{  function &setInit(){    static $static = '';    return $static;  }  function set($key,

从vbscrpit升级到vb7(一)变量的声明和使用

变量 大家都知道asp是用vbscriptm,而其又是vba得子集合(适合office系列产品),而vba又是vb的子集合,现在的asp+采用vb为程序语言,而于asp产生了很大的区别.(一)变量的声明和使用asp+用dim直接声明变量的数据类型例如:dim x as string 而在asp中是不允许的asp+用dim直接设置初值问题例如:dim a as string="我是字符" 而在asp中是不允许的asp+用dim声明多个变量时,那么每个变量的数据类型均为相同例如:dim x