[转载]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 :新长度

时间: 2024-10-23 10:00:24

[转载]Delphi逆向的相关文章

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 字符串复制

[转载] Delphi 的字符及字符串[2] - Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar

//单字符 Char.AnsiChar (在目前版本(2007)中, 它们是一回事, 只有 1 字节大小) var   c: Char; {Char 类型的取值范围是: #0..#255, 用十六进制表示是: #$0..#$FF} begin   {用十进制方式赋值:}   c := #65;   ShowMessage(c); {A}   {用十六进制方式赋值:}   c := #$41;   ShowMessage(c); {A}   {用 Chr 函数代替 # 符号}   c := Chr

[转载]Delphi常用类型及定义单元

原文地址:Delphi常用类型及定义单元作者:沧海一声笑 Delphi常用类型及定义单元-总结 sndplaysound                mmsystem Type Unit Date SysUtils DeleteFile SysUtils or Windows (different versions) DispatchInvokeError ComObj DWORD Windows EDatabaseError DB EncodeDateTime DateUtils _Stre

[转载]Delphi和BC++程序手动查找按钮事件

本文转载自: http://blog.csdn.net/zhangmiaoping23/article/details/13508045 OD载入后,CTRL+G,转到00401000处然后就CTRL+B,查找特征码 740E8BD38B83????????FF93????????然后就在下面的CALL处下断吧.下面的工作就是不断的CTRL+L继续查找和F2下断了

[转载] Delphi StringGrid常用属性和常用操作

StringGrid组件用于建立显示字符串的网格,与电子表格相似.它可使表格中的字符串和相关对象操作简单化.StringGrid组件提供了许多可控制网格外观念的属性,以及利用表格的结构响应用户操作的事件和方法.StringGrid具有关联对象与网格中的每个字符串的作用,这些对象为用户封装了字符串表示的信息或行为. 一.Delphi StringGrid控件的属性及使用说明 1.固定行及固定列:  (没有固定行列的时候,不能在运行时调节各个单元格的宽度和高度) StringGrid.FixedCo

[转载]: delphi中XLSReadWrite控件的使用(2)---delphi XE下安装

一.下载 官方下载网址: http://www.axolot.com/components/download.htm 从这里可以下载到从Delphi5到DelphiXE全部支持的版本. 二.软件安装 下载下来的文件是exe格式,可以直接安装,一路next即可. 按照默认安装,会在: C:\Documents and Settings\All Users\Documents\RAD Studio\8.0  路径下生成XLSRWII4_D2011.bpl,安装时需要使用. C:\Program Fi

[delphi]indy idhttp post方法

网易 博客 LOFTCam-用心创造滤镜 LOFTER-最美图片社交APP 送20张免费照片冲印 > 注册登录 加关注 techiepc的博客 万事如意 首页 日志 LOFTER 相册 音乐 收藏 博友 关于我 日志 关于我 techiepc 加博友   关注他 文章分类 ·默认分类(249) LOFTER精选 注册免费冲印20张照片 > 网易考拉推荐 网易新闻 湖南郴州现"多彩空调墙" ·男孩溺亡同伴藏其物品瞒23天 ·男子撞人逃逸后与伤者同病房 ·老汉谎称自焚:想要制造

delphi程序病毒分析

文件: C__Users_SETH_AppData_Local_Temp_Scanned Copy[1].exe大小: 776704 bytes修改时间: 2018年1月29日, 13:37:20MD5: 9B2130F13784B915088BB83E272B8C4DSHA1: A3284EE13269B7B051DAFA46EABFCD3281951651CRC32: 19F7C8F0文件基本信息:区段信息: 对于delphi程序使用DeDeDark或DelphiDecompiler看看 参

[转载红鱼儿]delphi 实现微信开发(2)接入微信公众号平台

先要学习一下接入的资料,在这里,因为原理都在,所以一定要认真阅读,然后,利用Delphi实现一个对应函数: function CheckSignature(const signature, timestamp, nonce, token: string): boolean; var strs: TStringList;   tmpStr: string; begin strs := TStringList.Create;   try     strs.Add(token);     strs.A