首页
社区
课程
招聘
[旧帖] [求助]帮忙看看这段代码 0.00雪花
发表于: 2006-12-24 10:24 3528

[旧帖] [求助]帮忙看看这段代码 0.00雪花

2006-12-24 10:24
3528
一个时间限制软件,用OD加载程序,右击汇编窗口,查找->当前模块中的名称(标签),发现2个与时间有关的名称,msvbvm60.rtcDateAdd和msvbvm60.rtcGetTimer
于是反汇编跟随第一个,完全看不懂,接着跟随第二个,这个貌似看懂一点,代码如下:
73472654 >  55              push    ebp
73472655    8BEC            mov     ebp, esp
73472657    83EC 14         sub     esp, 14
7347265A    8D45 EC         lea     eax, dword ptr [ebp-14]
7347265D    50              push    eax
7347265E    FF15 00113973   call    dword ptr [<&KERNEL32.GetLocalTime>]             ; kernel32.GetLocalTime
73472664    0FB745 F4       movzx   eax, word ptr [ebp-C]         
73472668    0FB74D F6       movzx   ecx, word ptr [ebp-A]
7347266C    6BC0 3C         imul    eax, eax, 3C
7347266F    03C1            add     eax, ecx
73472671    0FB74D F8       movzx   ecx, word ptr [ebp-8]
73472675    6BC0 3C         imul    eax, eax, 3C
73472678    03C1            add     eax, ecx
7347267A    8945 FC         mov     dword ptr [ebp-4], eax
7347267D    0FB745 FA       movzx   eax, word ptr [ebp-6]
73472681    DB45 FC         fild    dword ptr [ebp-4]
73472684    8945 FC         mov     dword ptr [ebp-4], eax
73472687    DB45 FC         fild    dword ptr [ebp-4]
7347268A    DC0D 60033C73   fmul    qword ptr [733C0360]
73472690    DEE9            fsubp   st(1), st
73472692    C9              leave
73472693    C3              retn

这段代码好像是读取计算机当前时间的,我想,如果将时间停止,那限时软件不就可以永远使用了么?于是,将imul整数相乘2处,个人认为这里是分和时的进位表示,因为3C就是60的意思,,将其改成imul    eax, eax, 0 然后按F9运行,修改系统时间,1小时1小时的加,加着加着就退出了........

我理解有错误么?哪里出错了?
还有有几个问题想随便提问下,OD好像能修改不能保存的,是这样的吗?然后就是ebp-8,ebp-4这些是甚么意思?
谢谢,你的解答是我进步的力量

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
2
OD右键复制到可执行文件----所有修改(或选择部分)----右键保存文件即可保存对代码的修改了。
ebp-8是堆栈里的数据(mov ebp,esp),代表局部变量或者是函数的参数。
2006-12-24 10:49
0
游客
登录 | 注册 方可回帖
返回
//