• Delphi反汇编内部字符串处理函数/过程不完全列表


    Delphi反汇编内部字符串处理函数/过程不完全列表 - milantgh

    名称

    参数

    返回值

    作用

    等价形式 / 备注

    _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 :新长度

  • 相关阅读:
    前端插件集合
    建立controller
    W3C对DOM2.0定义的标准事件
    事件代理和委托学习
    css3属性flex弹性布局设置三列(四列)分布样式
    css+html 关于文本的总结(整理中)
    jquery阻止事件冒泡的3种方式
    web前端打印总结
    前端打印插件
    object实现小老鼠交互
  • 原文地址:https://www.cnblogs.com/faeriesoft/p/4784794.html
Copyright © 2020-2023  润新知