Delphi逆向
Delphi反汇编内部字符串处理函数/过程不完全列表
名称
参数
返回值
作用
等价形式 / 备注
_PStrCat
EAX :目标字符串
EDX :源字符串
EAX
连接两个 Pascal 字符串
s:=copy(s+s1,1,255)
_PStrNCat
EAX :目标字符串
EDX :源字符串
CL :结果字符串最大长度
EAX
连接两个 Pascal 字符串
s:=copy(s+s1,1,n)
_PStrCpy
EAX :目标字符串
EDX :源字符串
EAX
Pascal 字符串复制
s:=s1
_PStrNCpy
EAX :目标字符串
EDX :源字符串
CL :结果字符串最大长度
EAX
Pascal 字符串复制
s:=copy(s1,1,n)
_PStrCmp
EAX :左字符串
EDX :右字符串
标志位 Z
Pascal 字符串比较
if s=s1
_AStrCmp
EAX :左字符串
EDX :右字符串
ECX :要比较的字符个数
标志位 Z
Ansi 字符串比较
if s=s1
_LStrClr(var S: AnsiString);
EAX :字符串
清空字符串
s:=''
_LStrArrayClr{var str: AnsiString; cnt: longint};
EAX :字符串数组指针
EDX :数组长度
清空字符串数组
_LstrAsg(var dest: AnsiString; source: AnsiString)
EAX :目标字符串
EDX :源字符串
复制 Ansi 字符串
_LstrLAsg(var dest: AnsiString; source: AnsiString)
复制 Ansi 字符串。但是和 _LstrAsg 的区别不详
_NewAnsiString(length: Longint)
EAX :长度
EAX (指针)
分配指定长度的 AnsiString
_LStrFromPCharLen(var Dest: AnsiString; Source: PAnsiChar; Length: Integer)
EAX :目标字符串
EDX :源字符串
ECX :要复制的长度
分配并从 PChar 复制指定长度的 AnsiString
_LStrFromPWCharLen(var Dest: AnsiString; Source: PWideChar; Length: Integer)
EAX :目标字符串
EDX :源字符串
ECX :要复制的长度
分配并从 PWideChar 复制指定长度的 AnsiString
_LStrFromChar(var Dest: AnsiString; Source: AnsiChar)
EAX :目标字符串
EDX :源字符串
单字符的分配和复制
_LStrFromWChar(var Dest: AnsiString; Source: WideChar)
EAX :目标字符串
EDX :源字符串
单字符的分配和复制
_LStrFromPChar(var Dest: AnsiString; Source: PAnsiChar)
Pchar 到 AnsiStr 的转换
_LStrFromPWChar(var Dest: AnsiString; Source: PWideChar)
PWideChar 到 AnsiStr 的转换
_LStrToString(var Dest: ShortString; const Source: AnsiString; MaxLen: Integer)
EAX :目标字符串
EDX :源字符串
ECX :要复制的长度
AnsiString 到 Pascal 字符串的转换
_LstrLen(str: AnsiString): Longint
EAX :目标字符串
EAX
AnsiStr 的长度
_LstrCat(var dest: AnsiString; source: AnsiString)
EAX :目标字符串
EDX :源字符串
Ansi 字符串的连接
dest+=source
_LStrCat3{var dest:AnsiString; source1: AnsiString; source2: AnsiString}
EAX :目标字符串
EDX :源字符串 1
ECX :源字符串 2
Ansi 字符串的连接
dest+=source
_LstrCatN(var dest:AnsiString; argCnt: Integer; ...)
EAX :目标字符串
EDX :源字符串的个数 +2
[ESP+4*i] :第 i 个源字符串的指针
Ansi 字符串的连接
这里的入口参数比较特别
_LStrCmp
EAX :左字符串
EDX :右字符串
标志位 Z
Ansi 字符串比较
if s=s1
_LStrAddRef
EAX :目标字符串
增加 Ansi 字符串的引用计数
这个可以不用管
_LStrToPChar
EAX
EAX
类型转换
_LstrCopy(const s : AnsiString; index, count : Integer): AnsiString
EAX :目标字符串
EDX :起始位置
ECX :要复制的长度
[ESP+4]
复制指定长度的 Ansi 子串
_LStrDelete
EAX :目标字符串
EDX :起始位置
ECX :要删除的长度
同 Delete
_LstrInsert(const source : AnsiString; var s : AnsiString; index : Integer)
EAX :要插入的字符串
EDX :目标字符串
ECX :要插入的位置
将 source 插入到 s 的 index 位置
结果是 s 加长
_LStrPos
EAX :子串
EDX :目标字符串
EAX
同 POS
_LStrSetLength
EAX :目标字符串
EDX :新长度
Delphi逆向的更多相关文章
- OD 实验(十二) - 对一个 Delphi 程序的逆向
程序: 运行程序 界面显示的是未注册 点击 Help -> About 点击 Use Reg Key 这里输入注册码 用 PEiD 看一下 该程序是用 Delphi 6.0 - 7.0 写的 逆 ...
- Reverse Core 第一部分 代码逆向技术基础
@date: 2016/10/14 <逆向工程核心原理>笔记 记录书中较重要的知识,方便回顾 ps. 因有一些逆向基础,所以我本来就比较熟悉的知识并未详细记录 第一章 关于逆向工程 目标, ...
- Delphi XE5 常见问题解答
Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...
- VB逆向
大家或许有所察觉了,随着我们课程的不断深入学习,我们感觉自身逆向的“内功”也在不断的增进! 我们从爆破入手,到现在逐步大家进入程序的内部,认识不同编译器开发的程序,探索不同的加密逻辑. 前边,我们的例 ...
- 逆向集录_00_不同程序OEP特征总结
在分析/逆向 程序时,如果事先知道这类程序的一些特征,那将会是事半功倍的: 分析/逆向 程序,和写程序不同,比喻的话:写程序像在作案,分析/逆向 程序就像是在破案,对破案来讲,重在假想和推理: 特征1 ...
- CrackMe005-下篇 | 逆向破解分析 | 160个CrackMe(视频+图文)深度解析系列
作者:逆向驿站微信公众号:逆向驿站知乎:逆向驿站 CrackMe005,上篇说了具体方法,下篇来发逆向分析过程,看看老夫是如何得到上篇的具体方法的! 准备 [环境和工具] win7/xp虚拟机环境 C ...
- Delphi编程中动态菜单要点归纳
一.创建菜单并添加项目 在设计程序时,有时需要动态创建菜单, 通常使用以下的语句: PopupMenu1 := TPopupMenu.Create(Self); Item := TMenuIte ...
- 【逆向工具】IDA使用1-VS2015版本debug查找Main函数,加载符号文件
IDA 常见操作 空格,切换反汇编视图 选择CALL或是跳转 进入函数内部或是跳转处 返回键 ESC daq.exe 分析32位程序 ,生成的IDA数据库文件是 .idb Idap64.exe 分析6 ...
- PowerDesigner逆向操作(从mysql5.0生成数据库的物理模型),把Comment写到name中,pdm文件导出为word
PowerDesigner逆向操作(从mysql5.0生成数据库的物理模型) 环境:powderdesigner12.5:mysql5.0步骤:1. 为指定的数据库配置mysql的ODBC数据源先下载 ...
随机推荐
- sql常识-FULL JOIN
SQL FULL JOIN 关键字 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行. FULL JOIN 关键字语法 SELECT column_name(s) FROM table_n ...
- 【Unix环境高级编程】编写变长参数函数
文件的格式输入输出函数都支持变长参数.定义时,变长参数列表通过省略号'...'表示, 因此函数定义格式为: type 函数名(parm1, parm2,parmN,...); Unix的变长参数通过v ...
- iOS预处理指令
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理. 预处理指令是以#开头的代码行,#后是指令关键字,在关键字和#号之间允许存在任意个数的空 ...
- C#中String类的几个方法(IndexOf、LastIndexOf、Substring)
String.IndexOf String.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置. ...
- H5API——Canvas
http://item.jd.com/11241807.html HTML5移动Web开发实战http://item.jd.com/10982275.html HTML5程序设计(第2版)http:/ ...
- mybatis like 查询
SELECT * FROM user WHERE name like CONCAT('%',#{name},'%')
- 关键字 static
A. 面向过程: 1. 静态全局变量:在全局变量前,加上关键词static,该变量就被定义成为一个静态全局变量. 1.1. 特点: |该变量在全局数据区分配内存: |未经初始化的静态全局变量会被程序自 ...
- VC6配置OpenCV1.0
懒得写字,故扫描:
- 专家解说IT行业存在哪些安全风险
本人为原创作品:e良师益友 ,转载是并且注明 网络带动了IT行业的发展,同时也带来了安全风险,国外的专家分析2014年IT行业存在的11个安全隐患,随着越来越多技术的不断开发,为方便人们记忆账号,产生 ...
- Nodejs微信接口
代码重要部分都已详细注释,test.js为实例,如果启动url请求,那么程序默认对json格式数据友好,如果有特殊需要,请自行修改返回数据的处理格式 大概功能简介为下: this._token 提供t ...