社区应用 社区服务 会员列表 统计排行 帮助 银行
  • 485阅读
  • 14回复

[教程]粗糙[置入代码][命令]使用教学

楼层直达
发帖
86
铜币
1590
威望
0
E积分
0
技术积分
0
有人说置入代码,会的人少。所以。。。。我来简单教学一下

必须要知道的一些东西。。。。
       易失性寄存器:ECX EDX
       非易失性寄存器:EBX ESI EDI EBP
       其他特殊寄存器:EAX ESP
       简单说就是[易失寄存器]随便用,[非易失寄存器]用的时候先保存起来,用完给它恢复回去。EAX放返回值,ESP是栈顶
push ebp
mov ebp,esp 这2句是子程序开头的,就是给这个子程序建立帧针,使用参数和局部变量就用它
sub esp,4 这就是开辟了一个局部变量 用[ebp-4]就是它了
下面说参数
    子程序的调用是这样,易语言是stdcall,百度一下有资料
    
这个子程序的汇编代码是
     push ebp
     mov ebp,esp 这2句,就是这这个子程序建立帧指针


     sub esp,4   这就是搞出变量一来
     mov [ebp-4],0  这里易语言的整数型的初始值是0,所以搞0
     mov eax,[ebp-4]  上面说了EAX放返回值,上图的是返回变量一,所以这里把变量一搞到eax了

     mov esp,ebp
     pop ebp 因为要退出这个子程序回去调用处了所以这2句,要把自己的帧指针,恢复成调用之前的[也就是上一个子程序的]
     ret 8  这就是返回了,8是因为有2个参数
     要理解ret需要和call一起来解释
    比如调用上面的那个子程序
   push 参数二  参数进栈              
   push 参数一  参数进栈    stdcall用栈传参数          
            push 2个参数后
                  低地址
                         参数一
                         参数二
                  高地址
   call 子程序  
            call 的操作 先把下一条指令的地址[作为返回地址ret就用它]push进栈,然后jmp到子程序,之后
                  低地址
                         返回地址
                         参数一
                         参数二
                  高地址
就到了子程序的push ebp mov ebp,esp 这里了
过来子程序这里
走完下面这几条
     push ebp
     mov ebp,esp
     sub esp,4  
     mov [ebp-4],0  这几条相当于是这个子程序的初始化,搞好帧指针,搞好变量
上面这几条走完后[初始化完成]
                  低地址
                         变量一     [sub esp,4就是搞出这个变量]   这里就是ebp-4
                         EBP         [mov ebp,esp就是把这地址给了ebp]  这就是 ebp
                         返回地址    这不就是ebp+4了吗
                         参数一  ebp+8
                         参数二  ebp+12
                  高地址
下面可以开始我们的操作了,比如我想让参数一和参数二相加,然后放到变量一里
我们只需要这样做
mov eax,[ebp+12]
add eax,[ebp+8]
mov [ebp-4],eax
这就把参数一和参数二相加放到变量一里了
写的不好,见谅。

下面放个使用列子


本帖最近评分记录: 6 条评分 铜币 +19
236965 铜币 +1 昨天 13:54 感谢帮助解答,谢谢!
风格_ 铜币 +4 02-19 感谢楼主开源,绝对顶你!
酷乐 铜币 +3 02-15 分享是一种美德!
hizdf 铜币 +1 02-14 赞,楼主继续
565266718 铜币 +5 02-13 多来点.......
nino 铜币 +5 02-13 -
发帖
2751
铜币
25596
威望
0
E积分
0
技术积分
0
只看该作者 沙发  发表于: 02-13
很好的文章,慢慢消化!!!!
级别: 商业用户
发帖
27
铜币
4354
威望
0
E积分
0
技术积分
0

只看该作者 板凳  发表于: 02-13
会的人看这样的教学还挺有趣的,不会的大多数看得一头雾水的。
级别: 托儿所
发帖
4
铜币
10847
威望
0
E积分
0
技术积分
0
只看该作者 地板  发表于: 02-13
感谢楼主,学习了。。
发帖
143
铜币
0
威望
0
E积分
0
技术积分
0
只看该作者 4楼 发表于: 02-13
感谢感谢感谢感谢
发帖
3168
铜币
19079
威望
0
E积分
21
技术积分
1
只看该作者 5楼 发表于: 02-13
多来点.......
发帖
336
铜币
2
威望
0
E积分
0
技术积分
0
只看该作者 6楼 发表于: 02-14
赞,楼主继续
dwj
发帖
97
铜币
20
威望
0
E积分
0
技术积分
0
只看该作者 7楼 发表于: 02-14
感谢楼主,学习了
发帖
76
铜币
0
威望
0
E积分
0
技术积分
0
只看该作者 8楼 发表于: 02-15
分享是一种美德!
发帖
2128
铜币
1887
威望
0
E积分
0
技术积分
15
只看该作者 9楼 发表于: 02-15
分享是一种美德!
快速回复

限60 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个