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. svn 分支整个项目合并主干

    1.首先主干要更新最新版本. 2.找到主干(trunk)点击右键--合并--合并类型选择(合并一个版本范围)点击下一步--合并源选择整个分支项目--将要合并的修改版本范围(选择指定(a)范围)点击下一 ...

  2. 第二篇、JavaScript常用的API

    下面是我整理的一些JavaScript常用的API清单. 目录 元素查找 class操作 节点操作 属性操作 内容操作 css操作 位置大小 事件 DOM加载完毕 绑定上下文 去除空格 Ajax JS ...

  3. System.Windows.Forms.Timer

    一.主要属性.方法和事件 Windows 窗体 Timer 是定期引发事件的组件.该组件是为 Windows 窗体环境设计的. 时间间隔的长度由 Interval 属性定义,其值以毫秒为单位.若启用了 ...

  4. JAVA解析xml的五种方式比较

     1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取 和操作文档的任意部分,是W3C的官方标准 [优点] ① ...

  5. NFC规范学习之一 ---整体结构

    1.NFC 采用两个感应线圈进行数据交互,其中至少必须有一个设备产生13.56MHZ的磁场,该场被调制以方便数据传输.通讯中,一个设备处于initiator模式(就是发起通讯)另外一个设备则工作在ta ...

  6. will VS be going to

    1.Future - Will vs. Going to 2."Will be doing" vs. "will do" 3.Simple Future

  7. SecureCRT for Linux突破30天使用限制

    当然还有一种方法,就是当你试用点i agree到时候,在~/.vandyke/Config 会生成一个文件SecureCRT_eval.lic,删除以后就可以恢复30天试用

  8. jobs

    fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的一.& 最经常被用到这个用在一个命令的最后,可以把这个命令放到 ...

  9. 锋利的jquery-事件和动画

    1 注册事件的触发时机 在jquery中,$(window).load(function(){}) 注册在window下的事件等待页面所有资源加载完成(包括dome树的加载和图片视频的资源的加载) $ ...

  10. css定义的权重

    以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值: /*权重为1*/        div{        }        /*权重为10 ...