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数据源先下载 ...
随机推荐
- JAVA之数据溢出
Integer在java中属于包装类,既能用于字符串与整型的转换,也能用于拆箱与装箱 package ABC; public class A{ public static void main(Stri ...
- c++ 11 国标标准方面的异常处理与微软在Visual Studio 2012的异常处理的区别
这段代码: __try { } __except(GetErrorCode()) { } 可以捕获空指针,但是包围在其中的代码不能有自带析构函数的对象.c++ 11 标准里面的auto_ptr关键字, ...
- Bootstrap 标签的变体 实例样式
Bootstrap 标签样式,代码如下: <!DOCTYPE html> <html> <head> <title>Bootstrap 实例 - 标签的 ...
- OC8_NSData
// // main.m // OC8_NSData // // Created by zhangxueming on 15/6/19. // Copyright (c) 2015年 zhangxue ...
- YII Framework 1.0运行时序图分析过程
- Js 循环结构
循环结构: for while do….while for循环 for(变量初始化;条件表达式;变量更新){ //循环体 } 说明: 第一步:变量初始化 只执行一次 第二步:判断表达式是否成立 成立则 ...
- Sicily 1068欢迎提出优化方案
1608. Digit Counting 限制条件 时间限制: 1 秒, 内存限制: 32 兆 题目描述 Trung is bored with his mathematics homeworks. ...
- Linux 配置
零:个性化 主题:Radiance 主题颜色: gtk-color-scheme = "base_color:#CCE8CF\nfg_color:#006400\ntooltip_fg_co ...
- L1范式和L2范式的区别
L1 and L2 regularization add a cost to high valued weights to prevent overfitting. L1 regularization ...
- 热键HotKeys
一:新建类HotKeys命名空间: using System.Runtime.InteropServices; 二:注册热键API [DllImport("user32")] pu ...