每一种语言都有一些字符串操作函数,反汇编后的代码也不例外。网上讲的都比较零碎,我将它们收集起来,并配上自己的理解,形成本文。 一、字节操作指令:lodsb和stosb1. lodsd需要寄存器esi配合使用。每执行一次lodsb,就将[esi]中的一个字节复制到al寄存器中。    即:lodsd == [es
目录一、Lua语言简介二、Lua架构图三、Lua源码结构很久很久没有写博客了,一直忙于工作和项目,最近依然想静下来阅读一些好的源码。自从读完了Nginx和Memcache的源码后,对服务器端的基础开源软件的实现原理有了一定的认识,接下来想看看Lua这门精巧的语言是如何实现的。一、Lua语言简介Lua是一门用C语言编写的脚本语言,一共1w多行代码,非常的轻巧,适合做web脚本、游戏脚本、物联网等场景
转载 2024-02-21 21:33:12
58阅读
常用的汇编指令:   1、相对跳转指令:b、b1     这两条指令的不同之处在于bl指令除了跳转之外,还将返回地址(bl的下一条指令的地址)保存在lr寄存器中。都是位置无关指令。   2、数据传送指令mov,地址读取伪指令ldr     mov指令可以把一个寄存器的值赋给另一个寄存器,或者把一个常数赋给寄存器,mov指令传送的常数必须能
转载 2024-07-09 13:32:22
56阅读
1、MOV指令        把一个数移动到目标寄存器格式:MOV  条件   s条件: 就表示mov指令是否要执行,如果满足条件就执行movs:  是否影响cpsr的值注:寄存器存储得数据,可以是一个常数,也可以是一个数经过左移右移得到的数据。  &nbsp
软件:emu8086语言:汇编语言(Assembly)注意:本文列出了十六进制转二进制、十进制、ASCII码及大小写字母转换的代码,全部代码为博主独自一人编写,会有瑕疵,谨慎使用。1.十六进制转换为二进制数设计1.1设计要求:设计转换程序,将键盘键入的四位十六进制数据转换为等值的二进制数,并在终端显示。要求:完善程序结构,设置程序错误出口。输入的不是0-F间的值,显示错误提示信息,并要求重新输入。
探索汇编语言的新篇章:ASMREPL asmreplA REPL for x86-64 assembly language项目地址:https://gitcode.com/gh_mirrors/as/asmrepl ASMREPL 是一个为汇编语言爱好者量身打造的交互式命令行工具,让你可以在实时环境中编写、执行和调试汇编指令。无需复杂的设置过程,只需一条简单的命令,即可开启你的汇编旅程。项目技术分
条件语句判断时,只有false和nil会导致判断为假,其他的任何值都为真。 Lua 的字符串与编码无关; 它不关心字符串中具体内容。标准 Lua 使用 64 位整数和双精度(64 位)浮点数, 但你也可以把 Lua 编译成使用 32 位整数和单精度(32 位)浮点数。 以 32 位表示数字对小型机器以及嵌入式系统特别合适。table 是一个关联数组, 也就是说,这个数组不仅仅以
转载 2024-02-28 13:30:45
64阅读
在csapp中的新理解: (1)栈向下增长,栈顶元素的地址是所有栈中元素地址中最低的(2)因为栈和程序代码以及其他形式的程序数据都是放在同一内存中,所以程序可以用标准内存寻址方法访问栈内的任意位置(3)加载有效地址(load effective address)指令leap实际上是movq指令的变形,它的指令形式是从内存读数据到寄存器,但实际上它根本就没有引用内存。  &nbs
转载 2024-03-22 20:33:33
68阅读
W32Dasm是一个强大的反汇编工具,操作简单,使用方便。通常被程序员使用,当然也可被用来Crack软件了,很适合Cracker使用。我在这把与crack相关的功能简述如下: 1.0 开始 2.0 保存反汇编文本文件和创建方案文件 3.0 反汇编文本代码的基本操作 4.0 复制汇编代码文本 5.0 装载32位的汇编代码动态调试 6.0 运行,暂停或终止程序 7.0 单步跟踪程序 8.0 设置激
先上代码: test.S如下 @压栈操作 mov ip, sp sub sp, sp, #12 str lr, [sp] @str r14, [sp] str ip, [sp, #4] @ str r12, [sp, #4] str fp, [sp, #8] @ str r11. [ip, #8] sub fp, ip, #4 @函数调用
作者:admin-神风①查找金钱进入游戏后,我们发现金钱数量为800这时候我们在CE中搜索800 找到141个数据我们买点子弹再搜索剩下的钱通过发现,地址为01A1B9FC上的数值是屏幕上显示的地址为04949DA4上的数值才是真正的金钱数量 同理,我们通过更改子弹数量,但是当我们搜索到剩余198个数据的时候,发现之后的子弹无论怎么更改,这198个数据都随之变动 &n
汇编分类  汇编语言种类大致可以分为:8086汇编(16bit)、x86汇编(32bit)、x64汇编(64bit)以及嵌入式汇编等。根据书写格式的不同可将汇编分为:Intel汇编和AT&T汇编。GCC编译器中默认使用的是AT&T汇编,两种格式的差异如下: 寻址方式的差异如下:寄存器  寄存器是cpu中的数据存储区域,cpu会先将内存中的数据存储到寄存器,再对寄存器中的数据进行运算
翻译自《Lua Programming Gems》Chapter 2:Lua Performance Tips:Basic fact By Roberto Ierusalimschy编写高效Lua代码的方法基本知识 Lua在运行代码之前,会先把源码翻译(预编译)成一种内部编码,这种编码由一连串的虚拟机能够识别指令构成,与CPU的机器码很相似。接下来由C代码中的一个while循环负责解释这些内部编码
重点回顾1. Python是一种面向对象、解释型的程序设计语言,语法简单易学,具有跨平台的特性,加上强大的程序包和模块,让Python的应用领域非常广泛。2. Python的特色:程序代码简洁易读、跨平台、面向对象、自由/开放源码。3. 机器语言是一种最低级的程序设计语言,是以0与1二进制组合的方式将指令和机器码输入计算机。4. 汇编语言是以有意义的英文或数字来代替机器语言的程序设计语言,与机器语
本程序通过编译,运行正确 Code Segment Assume CS:Code,DS:Code CR equ 000DH LF equ 000AH KBBack equ 0008H ; ----------------------------------------- ; 功能:显示指定地址(Str_Addr)的字符串 ; 入口: ;
Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件 Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicode UTF
转载 2024-08-11 16:07:40
70阅读
openresty开发系列12--lua介绍及常用数据类型简介lua介绍  1993 年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro in Brazil)诞生了一门编程语言,发明者是该校的三位研究人员,他们给这门语言取了个浪漫的名字——Lua,在葡萄牙语里代表美丽的月亮。事实证明她没有糟蹋这个优美的单词,Lu
Lua5.1开始官方给出的文件只有源代码和makefile文件了,官网给出的bulid方式也是在linux平台,如果只是想找个库使用下可以到这里来下载:http://joedf.ahkscript.org/LuaBuilds/ ,如果需要自定修改库配置的话,就需要自己编译。这里主要参考文章在Windows下使用Visual Studio编译Lua5.3中的方式利用VS编译lua库文件,
转载 2024-08-15 08:07:24
33阅读
目前很多程序语言都专注于帮你编写成千上万行的代码,所以此类型的语言所提供的包、命名空间、复杂的类型系统及无数的结构,有上千页的文档需要操作者学习。 而Lua并不帮你编写大量的代码的程序,相反的,Lua仅让你用少量的代码解决关键问题。为实现这个目标,像其他语言一样Lua依赖于其可扩展性。但是与其他语言不同的是,不仅用Lua编写的软件易于扩展,而且用其他语言比如C/C++编写的软件也很容易
转载 2024-10-22 15:52:34
36阅读
URL编码总结          URL是Universal Resource Locator的简称。翻译过来那就是统一资源定位符,好吧,我们常常会俗称为网页地址。一个URL的格式一般是这种:协议类型://server地址(必要时需加上port号)/路径/文件名称?參数。比方http://zh.wikipedia.org:80/w/ind
转载 2024-10-17 20:56:29
36阅读
  • 1
  • 2
  • 3
  • 4
  • 5