首页
社区
课程
招聘
[求助]Linux下时间限制软件的破解
发表于: 2014-3-26 13:16 6343

[求助]Linux下时间限制软件的破解

2014-3-26 13:16
6343
目前使用IDA反汇编windows版本的结果如下:

因为软件运行提示过期,所以查找了expired 字符。
但是,没有学过汇编,请高手指点下这些命令中是否出现了关键跳转,或者时间的对比以判断是否过期

cmp eax, 53C3F7EA  有没有可能是对比当前时间和设定的过期时间(2014.01.01) 的对比?

53C3F7EA的具体内容是什么?



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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 807
活跃值: (2283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
如果按通常从 1970-01-01 00:00:00 为时间原点,0x53C3F7EA 按格林尼治时间累计秒数折算为日期的话,这一天应该是北京时间(东8区)的 2014-07-14 23:31:54 ,而楼主怀疑的东8区 2014-01-01 00:00:00 如果折算成累计秒数的话,这个值应该是 0x52C2EA00。

      你这是32位Windows PE程序,用OllyDBG加载这个exe文件,找到地址 004342D3,用汇编功能,把指令"jbe  00432E73" 直接改为"jmp  000432E73",然后用"复制到可执行文件"功能,把修改过的代码写回执行文件,这个关节就算过了。如果没有其他检查和校验的话,程序就不会再过期了。
2014-3-26 18:08
0
雪    币: 30
活跃值: (3385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
往回跳的,具体看代码,公布各软件下载地址吧
2014-3-26 18:40
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这是软件的下载地址

http://web.mit.edu/fbml/cmr/griffin-group/SPINEVOLUTION/Download.htm
2014-3-27 11:56
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
按您的建议试了,确实不会提示出错信息,但是程序不会运行下去。

可能作者在其它地方还有时间检验。如果是这样的话,有没有检测或搜索的办法?
2014-3-27 12:49
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
cmp eax, 53C3F7EA  有没有可能是对比当前时间和设定的过期时间(2014.01.01) 的对比?

53C3F7EA的具体内容是什么?
----------------------------------------------------
这个软件先后有几个版本,都有cmp  eax ,  XXXXXXXX的行,
到期时间是 2014.01.01        XXXXXXXX为:  52C3F7EA
到期时间是 2013.09.01        XXXXXXXX为:  52230AAF
到期时间是 2012.09.01        XXXXXXXX为:    5041CDD9

经算:   52230AAF - 5041CDD9 = 31538390 秒 ~  365.027天

因作者生于19 71年,所以这个可能是他的时间原点
2014-3-27 13:27
0
雪    币: 807
活跃值: (2283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
0x52230AAF 2013-09-01 17:36:47
0x5041CDD9 2012-09-01 16:56:57
0x52C3F7EA 2014-01-01 19:11:38
2014-3-27 19:49
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢您的回复!
现在的问题是,我如果把时间0x52230AAF加大,确实可以跳过提示,但程序仍然不运行,可能作者还在别的地方埋了坑。
作者在软件中4次用到了gettimeofday,不知道是否有关联?

1. gettimeofday
004080F1   .  E8 92D41A00   call <jmp.&cygwin1.gettimeofday>
004080F6   .  8B75 DC       mov esi,dword ptr ss:[ebp-0x24]
004080F9   .  891C24        mov dword ptr ss:[esp],ebx
004080FC   .  E8 FFA90300   call spinev_4.00442B00
00408101   .  8B15 44EC6D00 mov edx,dword ptr ds:[0x6DEC44]
00408107   .  8B45 A0       mov eax,dword ptr ss:[ebp-0x60]
0040810A   .  39D0          cmp eax,edx
0040810C   .  73 02         jnb Xspinev_4.00408110
0040810E   .  89D0          mov eax,edx
00408110   >  39F0          cmp eax,esi
00408112   .  73 02         jnb Xspinev_4.00408116
00408114   .  89F0          mov eax,esi
00408116   >  8945 A0       mov dword ptr ss:[ebp-0x60],eax
00408119   .  8B45 A4       mov eax,dword ptr ss:[ebp-0x5C]
0040811C   .  39C6          cmp esi,eax

2. gettimeofday
00408E40   .  E8 43C71A00   call <jmp.&cygwin1.gettimeofday>
00408E45   .  8B9424 241400>mov edx,dword ptr ss:[esp+0x1424]
00408E4C   .  8B9C24 201400>mov ebx,dword ptr ss:[esp+0x1420]
00408E53   .  8915 D0AC1301 mov dword ptr ds:[0x113ACD0],edx
00408E59   .  891D A4B79000 mov dword ptr ds:[0x90B7A4],ebx
00408E5F   .  891424        mov dword ptr ss:[esp],edx
00408E62   .  E8 99C71A00   call <jmp.&cygwin1.srandom>
00408E67   .  8B3D ACED6D00 mov edi,dword ptr ds:[0x6DEDAC]
00408E6D   .  85FF          test edi,edi
00408E6F   .  0F85 B6030000 jnz spinev_4.0040922B
00408E75   .  C705 800A8C00>mov dword ptr ds:[0x8C0A80],0x0
00408E7F   .  C78424 9C2900>mov dword ptr ss:[esp+0x299C],0x0
00408E8A   >  31DB          xor ebx,ebx
00408E8C   .  8D7426 00     lea esi,dword ptr ds:[esi]

3. gettimeofday
0040904A   .  E8 39C51A00   call <jmp.&cygwin1.gettimeofday>
0040904F   .  8B9C24 201400>mov ebx,dword ptr ss:[esp+0x1420]
00409056   .  893424        mov dword ptr ss:[esp],esi
00409059   .  E8 A29A0300   call spinev_4.00442B00
0040905E   .  8B15 44EC6D00 mov edx,dword ptr ds:[0x6DEC44]
00409064   .  8B8424 980000>mov eax,dword ptr ss:[esp+0x98]
0040906B   .  39D0          cmp eax,edx
0040906D   .  0F82 50020000 jb spinev_4.004092C3
00409073   >  39D8          cmp eax,ebx
00409075   .  0F82 41020000 jb spinev_4.004092BC
0040907B   >  898424 980000>mov dword ptr ss:[esp+0x98],eax
00409082   .  8B8424 9C0000>mov eax,dword ptr ss:[esp+0x9C]
00409089   .  39C3          cmp ebx,eax
0040908B   .  73 09         jnb Xspinev_4.00409096

4. gettimeofday
0040A0C2   .  E8 C1B41A00   call <jmp.&cygwin1.gettimeofday>
0040A0C7   .  8B8424 241400>mov eax,dword ptr ss:[esp+0x1424]
0040A0CE   .  890424        mov dword ptr ss:[esp],eax
0040A0D1   .  E8 2AB51A00   call <jmp.&cygwin1.srandom>
0040A0D6   .  85F6          test esi,esi
0040A0D8   .  0F8E 51030000 jle spinev_4.0040A42F
0040A0DE   .  8B1D 14F46200 mov ebx,dword ptr ds:[0x62F414]
0040A0E4   .  8D7E FF       lea edi,dword ptr ds:[esi-0x1]
0040A0E7   .  E8 3CB41A00   call <jmp.&cygwin1.random>
0040A0EC   .  31D2          xor edx,edx
0040A0EE   .  83E7 03       and edi,0x3
0040A0F1   .  899424 840000>mov dword ptr ss:[esp+0x84],edx
0040A0F8   .  898424 800000>mov dword ptr ss:[esp+0x80],eax
0040A0FF   .  DFAC24 800000>fild qword ptr ss:[esp+0x80]
2014-3-28 09:36
0
游客
登录 | 注册 方可回帖
返回
//