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

  • 相关阅读:
    使用python,批量生产条形码
    excel——VlookUp函数的使用
    MQTT消息队列压力测试
    shell脚本中,关于if,以及条件判断
    linux下的echo
    python对文件操作 r w a 文件复制/修改
    使用Appium进行iOS的真机自动化测试
    pycharm 解决PEP8问题,配置autopep8到菜单栏
    Python中list的合并
    Centos最小化安装后,不能使用yum命令的解决办法
  • 原文地址:https://www.cnblogs.com/bbdxf/p/3787684.html
Copyright © 2020-2023  润新知