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逆向的更多相关文章

  1. OD 实验(十二) - 对一个 Delphi 程序的逆向

    程序: 运行程序 界面显示的是未注册 点击 Help -> About 点击 Use Reg Key 这里输入注册码 用 PEiD 看一下 该程序是用 Delphi 6.0 - 7.0 写的 逆 ...

  2. Reverse Core 第一部分 代码逆向技术基础

    @date: 2016/10/14 <逆向工程核心原理>笔记 记录书中较重要的知识,方便回顾 ps. 因有一些逆向基础,所以我本来就比较熟悉的知识并未详细记录 第一章 关于逆向工程 目标, ...

  3. Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...

  4. VB逆向

    大家或许有所察觉了,随着我们课程的不断深入学习,我们感觉自身逆向的“内功”也在不断的增进! 我们从爆破入手,到现在逐步大家进入程序的内部,认识不同编译器开发的程序,探索不同的加密逻辑. 前边,我们的例 ...

  5. 逆向集录_00_不同程序OEP特征总结

    在分析/逆向 程序时,如果事先知道这类程序的一些特征,那将会是事半功倍的: 分析/逆向 程序,和写程序不同,比喻的话:写程序像在作案,分析/逆向 程序就像是在破案,对破案来讲,重在假想和推理: 特征1 ...

  6. CrackMe005-下篇 | 逆向破解分析 | 160个CrackMe(视频+图文)深度解析系列

    作者:逆向驿站微信公众号:逆向驿站知乎:逆向驿站 CrackMe005,上篇说了具体方法,下篇来发逆向分析过程,看看老夫是如何得到上篇的具体方法的! 准备 [环境和工具] win7/xp虚拟机环境 C ...

  7. Delphi编程中动态菜单要点归纳

      一.创建菜单并添加项目 在设计程序时,有时需要动态创建菜单, 通常使用以下的语句: PopupMenu1 := TPopupMenu.Create(Self);  Item := TMenuIte ...

  8. 【逆向工具】IDA使用1-VS2015版本debug查找Main函数,加载符号文件

    IDA 常见操作 空格,切换反汇编视图 选择CALL或是跳转 进入函数内部或是跳转处 返回键 ESC daq.exe 分析32位程序 ,生成的IDA数据库文件是 .idb Idap64.exe 分析6 ...

  9. PowerDesigner逆向操作(从mysql5.0生成数据库的物理模型),把Comment写到name中,pdm文件导出为word

    PowerDesigner逆向操作(从mysql5.0生成数据库的物理模型) 环境:powderdesigner12.5:mysql5.0步骤:1. 为指定的数据库配置mysql的ODBC数据源先下载 ...

随机推荐

  1. CSS之显示天气

    这个可以有,自从有了这个,以后查询天气就方便多了,哈哈. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  2. Linux -Yum 命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  3. Agile.Net 组件式开发平台 - 数据访问组件

    Agile.DataAccess.dll 文件为系统平台数据访问支持库,基于FluentData扩展重写,提供高效的性能与风格简洁的API,支持多种主流数据库访问. 当前市面上的 ORM 框架,如 E ...

  4. Fragment里面的ViewPager嵌套subFragment,主Fragment切换的时候subFragment出现空白Fragment的Bug

    Fragment第二次进入不显示,主要是第二次加载的时候重复调用了onCreateView()这个方法,重新new了一个pageadapter导致子fragment不显示,问题的解决方法就是在onCr ...

  5. 在windows7中使用计划任务命令SCHTASKS查询计划任务失败的解决方案

    造成这种原因是因为编码问题: 因此需要修改编码:chcp schtasks.exe /query 会报错     错误: 无法加载列资源. 修改编码为936为436就可以允许啦,但是中文不不能显示啦. ...

  6. (转)MongoDb的十个使用要点

    从 mongodb 阶段性技术总结 中抽取并整理了对大家有帮助的十个要点:   1.mongodb 表名和字段名统一用小写字母 mongodb 是默认区分大小写的,为了避免以前在 mysql 下遇到的 ...

  7. Paying for upgrades, by Bob Arnson

    Following content is reprinted from here, please go to the original website for more information. Au ...

  8. 分享一个难得的YiBo微博客户端应用源码Android版

    今天给大家分享一款,YiBo微博客户端应用源码,这是一款专为Android用户打造的聚合型微博客户端,完美支持新浪微博.腾讯微博.搜狐微博.网易微博和饭否五个微博平台,界面清爽,使用简单轻巧,支持多账 ...

  9. L013-oldboy-mysql-dba-lesson13

    L013-oldboy-mysql-dba-lesson13 02 18:00 来自为知笔记(Wiz)

  10. 连接Oracle数据库的OracleHelper.cs

    using System; using System.Configuration; using System.Data; using System.Data.OracleClient; using S ...