首页
社区
课程
招聘
有没有知道这段dephi程序有什么作用?
发表于: 2004-12-14 14:44 4856

有没有知道这段dephi程序有什么作用?

2004-12-14 14:44
4856
.text:0141A13C arg_0   = dword ptr  8
.text:0141A13C
.text:0141A13C         push    ebp
.text:0141A13D         mov     ebp, esp
.text:0141A13F         cmp     [ebp+arg_0], 0
.text:0141A143         jz      short loc_141A152
.text:0141A145         call    sub_1546A70
.text:0141A14A         cdq
.text:0141A14B         idiv    [ebp+arg_0]
.text:0141A14E         mov     eax, edx
.text:0141A150         jmp     short loc_141A154
.text:0141A152 ; ----------------------------------------------------------------------------
.text:0141A152
.text:0141A152 loc_141A152:                                      ; CODE XREF: sub_141A13C+7j
.text:0141A152         xor     eax, eax
.text:0141A154
.text:0141A154 loc_141A154:                                      ; CODE XREF: sub_141A13C+14j
.text:0141A154         pop     ebp
.text:0141A155         retn

************************************************

.text:01546A70 sub_1546A70 proc near                             
.text:01546A70         push    ebx
.text:01546A71         push    esi
.text:01546A72         call    __thread_data
.text:01546A77         mov     ebx, [eax+48h]
.text:01546A7A         call    __thread_data
.text:01546A7F         mov     esi, [eax+44h]
.text:01546A82         mov     eax, ebx
.text:01546A84         mov     ecx, 15Ah
.text:01546A89         mov     ebx, 4E35h
.text:01546A8E         test    eax, eax
.text:01546A90         jz      short loc_1546A94
.text:01546A92         mul     ebx
.text:01546A94
.text:01546A94 loc_1546A94:                                      
.text:01546A94         xchg    eax, ecx
.text:01546A95         mul     esi
.text:01546A97         add     eax, ecx
.text:01546A99         xchg    eax, esi
.text:01546A9A         mul     ebx
.text:01546A9C         add     edx, esi
.text:01546A9E         add     eax, 1
.text:01546AA1         adc     edx, 0
.text:01546AA4         mov     ebx, eax
.text:01546AA6         mov     esi, edx
.text:01546AA8         call    __thread_data
.text:01546AAD         mov     [eax+44h], ebx
.text:01546AB0         call    __thread_data
.text:01546AB5         mov     [eax+48h], esi
.text:01546AB8         mov     eax, esi
.text:01546ABA         and     eax, 7FFFFFFFh
.text:01546ABF         pop     esi
.text:01546AC0         pop     ebx
.text:01546AC1         retn
.text:01546AC1 sub_1546A70 endp

*********************************************************

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (9)
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
不会吧,这样的代码还有delphi与C或别的区别吗
2004-12-14 15:21
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
3
问题是,EAX里是什么?

好象是一个结构体指针。

另外,这代码的语言特征不明显。
2004-12-14 16:57
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
EAX 应该是线程变量偏移的基址,即线程局部存储的内存地址!!
2004-12-14 21:00
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
5
可能

但到底是什么,还是要看ref
2004-12-14 21:59
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
EAX为返回的结果,每次用相同的arg_0调用均会产生不同的结果

arg_0为传入的参数,出现过以下几种值
1. 01h-20h
2. 2710h     可能是秒数
3. 由_time返回的秒数
4. 数据表中记录的总数
5. (由_time返回的秒数) 减去 (上一次由_time返回的秒数)
2004-12-15 11:27
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
7
__thread_data?
2004-12-15 11:59
0
雪    币: 3246
活跃值: (374)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
8
伪随机数函数吧  lrand(Max)。

看看C:\Program Files\Borland\CBuilder6\Source\Rtl\Source\math\rand.c
2004-12-15 12:11
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
EAX是返回值,始终小于arg_0

arg_0是调用参数,曾出现过以下几种值
1. 00h-20h
2. 2710h
3. 数据表中的记录总数
4. _time函数返回的秒数
5. _time函数返回值减去上一次_time函数的返回值
2004-12-15 13:57
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢 blowfish
2004-12-15 15:00
0
游客
登录 | 注册 方可回帖
返回
//