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数据源先下载 ...
随机推荐
- python学习day4--python基础--购物小程序
'''购物小程序:用户启动时先输入工资用户启动程序后打印商品列表允许用户选择购买商品允许用户不断购买各种商品购买时检测余额是否够,如果够直接扣款,否则打印余额不足允许用户主动退出程序,退出时打印已购商 ...
- jQuery之锚点带动画跳转特效
背景图片为金木研,这是我最爱的一张图. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- block回调具体例子
//main.m //// main.m// 回调//// Created by hehe on 15/9/10.// Copyright (c) 2015年 wang.hehe. All r ...
- CodeBlock使用技巧
CodeBlock是一款采用C++编写的完全开源.功能强大的IDE,工欲善其事必先利其器,为了更加方便后期的开发调试,下面先就网上的一些 官方主页地址为: http://www.codebloc ...
- Linux C 程序指针和指针数组(NIGH)
指针和指针数组 #include<stdio.h> int main() { , b = ; int *p1 = &a , *p2 = &b ; printf(" ...
- CSS3 弹性盒布局模型(转)
简介 引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的条目进行排列. 对齐和分配空白空间.即便容器中条目的尺寸未知或是动态变化的,弹性盒布局模型也能正常的工作.在该布局模型中,容器会根 ...
- java应用uploadify 3.2丢失session
java应用uploadify 3.2丢失session http://c-bai.iteye.com/blog/1829269 uploadify上传用的是一个flash插件. flash中有个bu ...
- HTML5新增结构标签
引言 在本节中,笔者将向大家讲述三部分内容,分别介绍HTML5时代的召唤,跟HTML4的区别,以及HTML5中带来的新的结构标签. HTML5时代的召唤 HTML4与HTML5的区别 HTML5新结构 ...
- Implement Custom Cache Dependencies in ASP.NET 1.x
Code download available at:CuttingEdge0407.exe(128 KB) Contents What's a Cache Dependency, Anyway? ...
- php 操作数组 (合并,拆分,追加,查找,删除等)
1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加.其形式为: array array_merg ...