吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4690|回复: 7
收起左侧

[原创] 分析delphi程序的一些心得

  [复制链接]
女萝岩 发表于 2020-1-27 15:36
本帖最后由 女萝岩 于 2020-1-27 15:37 编辑

1.delphi程序中的字符串大概是这么个结构

用c语言表示
struct
{
int a;//不知道是做什么的
int flag;//1或者-1
int length//字符串大小
char str[];//不以\0结尾的数组
}

在OD或者IDA中经常能看到类似下面的获取字符串大小的代码

lea,edx,var
call GetString//调用完之后,edx指向字符串
mov eax,[edx]
test eax,eax,//判断指针是否为0
jz return
mov ebx,[eax-4]// eax指向字符串,根据结构,[eax-4]就是字符串的大小

2.delphi程序获取编辑框内容用GetDlgItemText GetWindowText,SendMessage 都是断不下来的,因为它是用自己内部的函数获取的。获取流程先是传递一个指针,用来存放buffer的地址
再传进去一个对象的地址,对象是用ebx寻址的,后面再根一个call
特征码如下
8D????8B83????????E8????????
在OD中搜索这段特征码很快就能定位到类似string a:=Edit1.Text这种代码了。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
梦旅意中人 + 1 + 1 非常感谢楼主提供的思路@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2020-1-28 11:59
本帖最后由 冥界3大法王 于 2020-1-28 12:02 编辑

Snap7.png
@女萝岩
试了下,不好用,定位不到。
 楼主| 女萝岩 发表于 2020-1-28 15:15
冥界3大法王 发表于 2020-1-28 11:59
@女萝岩
试了下,不好用,定位不到。

我的是delphi7的程序,其它版本可能有问题? sorry
A-new 发表于 2020-1-28 18:30
 楼主| 女萝岩 发表于 2020-1-29 01:23
A-new 发表于 2020-1-28 18:30
有个软件叫idr,一般人不告诉他

可以可以
 楼主| 女萝岩 发表于 2020-1-31 20:12
noname123 发表于 2020-1-30 12:01
偏移0的int a可能是reference count,不过我也记不太清了。好久之前分析的Delphi了。QT里面的QString确实有 ...

你说的应该是对的,面向对象的语言少不了引用计数这种东西的。听你这么一说突然想起来,delphi程序析构函数总是能看到sub [eax-var],1这种代码,就是减少引用计数的。
mazhb 发表于 2021-3-3 14:57
慢慢积累经验了,听说DELPHI是有特点的,可惜我还在找
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 14:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表