TC官方合作论坛

 找回密码
 立即注册
查看: 1130|回复: 0

[其他] 子程序的关键call,就是子程序的手机码。

[复制链接]
发表于 2016-2-11 13:59:46 来自手机 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
子程序的关键call,就是子程序的手机码。
用读基址的值+偏移,代替找图找色,找字识字。
用找call写call,代替TC的按鼠标按键盘。


在电脑中,一个程序往往由主程序和很多个子程序组成。子程序在不被调用时,都是静止状态。每一子程序都配有一个手机码。

主程序需要子程序时,只需要call 0x的手机号码,就能把子程序叫出来干活。

对于带参子程序,也是一样的。
先是把参数传进去,再call 0x的手机号码,就能把子程序叫出来干活。
//
//
push 10//把十六进制的10,放入栈的最上层。
push eax//把eax里面的数值,放入栈的最上面。
pop ecx//把栈中最上面的数值,取出来,放入ecx里面。

在汇编语言中,内存地址两边加[],表示取里面的值。
mov ecx, [ecx]

mov [eax + 0x4], ecx
[ecx],表示寄存器ecx里面装的是内存地址。这个表示取寄存器里面的,内存地址里面的值。
mov ecx,[ecx],,,再把值传递到ecx寄存器中。
//
//

什么是变量?
在硬件内存条中,最小的单位是进制位(bit)。
进制位上面是内存单元。内存单元的单位是字节(Byte)。
每个内存单元都对应着一个内存地址(例如0x00401000)。
//
变量是在内存地址中申请一个或者几个内存单元。
把这些连续的内存单元比喻成盒子,可以装东西。
//
一个程序写好后,打开后,系统会给它分配4G的虚拟内存空间。
在4G的虚拟内存空间中,全局变量就是基址,是根据0x00401000来分配的,所以是稳定不变的。
线程变量就是动态地址,是开启线程才分配的,所以会动态变化的。
局部变量是在栈中分配的,不讨论。


变量的作用域。

变量的数据类型。

变量和关键字的命名。

全局变量和内存基址。线程变量和动态内存地址。

评分

参与人数 1威望 +1 收起 理由
tan0360 + 1 赞一个!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-29 10:43 , Processed in 0.033472 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表