首页
社区
课程
招聘
[原创]Flexlm 9.2 or 11.x爆破
发表于: 2007-7-16 12:53 52046

[原创]Flexlm 9.2 or 11.x爆破

2007-7-16 12:53
52046
编译flexlm 9.2源代码,od载入FLEXlm\v9.2\utils\lmsimple.exe,F9运行,dos窗口中输入f1后回车,出现“Flexlm license finder”窗口,在od中按F12,再按ALT+F9,在“Flexlm license finder”窗口中点击“cancel”,程序中断在
0045D47E  |> \8B4D 18       MOV ECX,DWORD PTR SS:[EBP+18]
0045D481  |.  51            PUSH ECX                                 ; /lParam
0045D482  |.  8B55 14       MOV EDX,DWORD PTR SS:[EBP+14]            ; |
0045D485  |.  52            PUSH EDX                                 ; |DlgProc
0045D486  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]            ; |
0045D489  |.  50            PUSH EAX                                 ; |hOwner
0045D48A  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]             ; |
0045D48D  |.  51            PUSH ECX                                 ; |pTemplate
0045D48E  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]             ; |
0045D491  |.  52            PUSH EDX                                 ; |hInst
0045D492  |.  FF15 9CB24700 CALL DWORD PTR DS:[<&USER32.DialogBoxInd>; \DialogBoxIndirectParamA
0045D498  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX             ;  中断在这里,跳出错误窗口
0045D49B  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
0045D49E  |>  8BE5          MOV ESP,EBP
0045D4A0  |.  5D            POP EBP
0045D4A1  \.  C3            RETN

在od中4次运行CTRL+F9,程序到了
0041C00D  |> \8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4] ;堆栈 SS:[0012FE00]=FFFFFFFE,如果没有找到正确的license,则返回FFFFFFFE
0041C010  |>  5F            POP EDI   ;没正确license,那我手动修改这个返回值为0,骗一下程序
0041C011  |.  8BE5          MOV ESP,EBP
0041C013  |.  5D            POP EBP         ;  可以在这里打补丁,修改eax为0即可。再nop掉前面CALL DWORD PTR DS:[<&USER32.DialogBoxInd>
0041C014  \.  C3            RETN

对数据0012FE00下硬件写入断点,可跟踪到程序是再调用0041BA88  |.  FF15 7CD94800 CALL DWORD PTR DS:[48D97C]后将FFFFFFFE写入0012FE00的。看来关键东东就在CALL DWORD PTR DS:[48D97C]中了。
0041BA6C  |.  8B55 20       MOV EDX,DWORD PTR SS:[EBP+20]
0041BA6F  |.  52            PUSH EDX
0041BA70  |.  8B45 1C       MOV EAX,DWORD PTR SS:[EBP+1C]
0041BA73  |.  50            PUSH EAX
0041BA74  |.  8B4D 18       MOV ECX,DWORD PTR SS:[EBP+18]
0041BA77  |.  51            PUSH ECX
0041BA78  |.  8B55 14       MOV EDX,DWORD PTR SS:[EBP+14]
0041BA7B  |.  52            PUSH EDX
0041BA7C  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]
0041BA7F  |.  50            PUSH EAX
0041BA80  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]
0041BA83  |.  51            PUSH ECX
0041BA84  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]
0041BA87  |.  52            PUSH EDX                                 ;  这里计算出值放入内存中
0041BA88  |.  FF15 7CD94800 CALL DWORD PTR DS:[48D97C]               ;  lmsimple.0041C015
0041BA8E  |.  83C4 1C       ADD ESP,1C

既然是爆破,那就直接修改CALL DWORD PTR DS:[48D97C] 为mov eax,0,:)
发现程序多个地方调用,最好的方式是跟入CALL DWORD PTR DS:[48D97C] ,修改其返回值,让其始终返回0.

手上有flexlm 11.3保护的程序,分析一下,发现多个被保护的程序都有类似上面的代码,如下:
1、程序1
006D2598  |.  8990 38010000 MOV DWORD PTR DS:[EAX+138],EDX
006D259E  |.  68 9E000000   PUSH 9E                                  ; /Arg3 = 0000009E
006D25A3  |.  68 44127C00   PUSH Tm.007C1244                      ; |Arg2 = 007C1244 ASCII "lm_ckout.c"
006D25A8  |.  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]             ; |
006D25AB  |.  51            PUSH ECX                                 ; |Arg1
006D25AC  |.  E8 6407FFFF   CALL Tm.006C2D15                      ; \Tm.006C2D15
006D25B1  |.  83C4 0C       ADD ESP,0C
006D25B4  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]
006D25B7  |.  8B82 9C010000 MOV EAX,DWORD PTR DS:[EDX+19C]
006D25BD  |.  05 F40C0000   ADD EAX,0CF4
006D25C2  |.  6A 00         PUSH 0
006D25C4  |.  50            PUSH EAX
006D25C5  |.  E8 44FFF8FF   CALL <JMP.&MSVCR80._setjmp3>
006D25CA  |.  83C4 08       ADD ESP,8
006D25CD  |.  85C0          TEST EAX,EAX
006D25CF  |.  74 0E         JE SHORT Tm.006D25DF
006D25D1  |.  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]
006D25D4  |.  8B81 80000000 MOV EAX,DWORD PTR DS:[ECX+80]
006D25DA  |.  E9 D1000000   JMP Tm.006D26B0
006D25DF  |>  8B55 20       MOV EDX,DWORD PTR SS:[EBP+20]
006D25E2  |.  52            PUSH EDX                                 ; /Arg7
006D25E3  |.  8B45 1C       MOV EAX,DWORD PTR SS:[EBP+1C]            ; |
006D25E6  |.  50            PUSH EAX                                 ; |Arg6
006D25E7  |.  8B4D 18       MOV ECX,DWORD PTR SS:[EBP+18]            ; |
006D25EA  |.  51            PUSH ECX                                 ; |Arg5
006D25EB  |.  8B55 14       MOV EDX,DWORD PTR SS:[EBP+14]            ; |
006D25EE  |.  52            PUSH EDX                                 ; |Arg4
006D25EF  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]            ; |
006D25F2  |.  50            PUSH EAX                                 ; |Arg3
006D25F3  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]             ; |
006D25F6  |.  51            PUSH ECX                                 ; |Arg2
006D25F7  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]             ; |
006D25FA  |.  52            PUSH EDX                                 ; |Arg1 = 0215EAB8
006D25FB      E8 B4000000   CALL Tm.006D26B4                      <-----修改这里为mov eax,0即可爆破
006D2600  |.  83C4 1C       ADD ESP,1C
006D2603  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
006D2606  |.  837D FC 00    CMP DWORD PTR SS:[EBP-4],0
006D260A  |.  75 70         JNZ SHORT Tm.006D267C
006D260C  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
006D260F  |.  50            PUSH EAX                                 ; /Arg1
006D2610  |.  E8 8409FFFF   CALL Tm.006C2F99                      ; \Tm.006C2F99

2、程序2
004C9E78  |.  8990 38010000 MOV DWORD PTR DS:[EAX+138],EDX
004C9E7E  |.  68 9E000000   PUSH 9E                                           ; /Arg3 = 0000009E
004C9E83  |.  68 A0A95800   PUSH OPC1.0058A9A0                             ; |Arg2 = 0058A9A0 ASCII "lm_ckout.c"
004C9E88  |.  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]                      ; |
004C9E8B  |.  51            PUSH ECX                                          ; |Arg1
004C9E8C  |.  E8 04190100   CALL OPC1.004DB795                             ; \OPC1.004DB795
004C9E91  |.  83C4 0C       ADD ESP,0C
004C9E94  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]
004C9E97  |.  8B82 9C010000 MOV EAX,DWORD PTR DS:[EDX+19C]
004C9E9D  |.  05 F40C0000   ADD EAX,0CF4
004C9EA2  |.  6A 00         PUSH 0
004C9EA4  |.  50            PUSH EAX
004C9EA5  |.  E8 E0D3FDFF   CALL <JMP.&MSVCR80._setjmp3>
004C9EAA  |.  83C4 08       ADD ESP,8
004C9EAD  |.  85C0          TEST EAX,EAX
004C9EAF  |.  74 0E         JE SHORT OPC1.004C9EBF
004C9EB1  |.  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]
004C9EB4  |.  8B81 80000000 MOV EAX,DWORD PTR DS:[ECX+80]
004C9EBA  |.  E9 D1000000   JMP OPC1.004C9F90
004C9EBF  |>  8B55 20       MOV EDX,DWORD PTR SS:[EBP+20]
004C9EC2  |.  52            PUSH EDX                                          ; /Arg7
004C9EC3  |.  8B45 1C       MOV EAX,DWORD PTR SS:[EBP+1C]                     ; |
004C9EC6  |.  50            PUSH EAX                                          ; |Arg6
004C9EC7  |.  8B4D 18       MOV ECX,DWORD PTR SS:[EBP+18]                     ; |
004C9ECA  |.  51            PUSH ECX                                          ; |Arg5
004C9ECB  |.  8B55 14       MOV EDX,DWORD PTR SS:[EBP+14]                     ; |
004C9ECE  |.  52            PUSH EDX                                          ; |Arg4
004C9ECF  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]                     ; |
004C9ED2  |.  50            PUSH EAX                                          ; |Arg3
004C9ED3  |.  8B4D 0C       MOV ECX,DWORD PTR SS:[EBP+C]                      ; |
004C9ED6  |.  51            PUSH ECX                                          ; |Arg2
004C9ED7  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]                      ; |
004C9EDA  |.  52            PUSH EDX                                          ; |Arg1
004C9EDB  |.  E8 B4000000   CALL OPC1.004C9F94         <------- 修改这里                   ; \OPC1.004C9F94
004C9EE0  |.  83C4 1C       ADD ESP,1C
004C9EE3  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004C9EE6  |.  837D FC 00    CMP DWORD PTR SS:[EBP-4],0
004C9EEA  |.  75 70         JNZ SHORT OPC1.004C9F5C
004C9EEC  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
004C9EEF  |.  50            PUSH EAX                                          ; /Arg1
004C9EF0  |.  E8 241B0100   CALL OPC1.004DBA19                             ; \OPC1.004DBA19

3、程序3
0076C75E    68 9E000000     PUSH 9E
0076C763    68 A43C8300     PUSH License.00833CA4                   ; ASCII "lm_ckout.c"
0076C768    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
0076C76B    51              PUSH ECX
0076C76C    E8 54950000     CALL License.00775CC5
0076C771    83C4 0C         ADD ESP,0C
0076C774    8B55 08         MOV EDX,DWORD PTR SS:[EBP+8]
0076C777    8B82 9C010000   MOV EAX,DWORD PTR DS:[EDX+19C]
0076C77D    05 F40C0000     ADD EAX,0CF4
0076C782    6A 00           PUSH 0
0076C784    50              PUSH EAX
0076C785    E8 0A3EFFFF     CALL <JMP.&MSVCR80._setjmp3>
0076C78A    83C4 08         ADD ESP,8
0076C78D    85C0            TEST EAX,EAX
0076C78F    74 0E           JE SHORT License.0076C79F
0076C791    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
0076C794    8B81 80000000   MOV EAX,DWORD PTR DS:[ECX+80]
0076C79A    E9 D1000000     JMP License.0076C870
0076C79F    8B55 20         MOV EDX,DWORD PTR SS:[EBP+20]
0076C7A2    52              PUSH EDX
0076C7A3    8B45 1C         MOV EAX,DWORD PTR SS:[EBP+1C]
0076C7A6    50              PUSH EAX
0076C7A7    8B4D 18         MOV ECX,DWORD PTR SS:[EBP+18]
0076C7AA    51              PUSH ECX
0076C7AB    8B55 14         MOV EDX,DWORD PTR SS:[EBP+14]
0076C7AE    52              PUSH EDX
0076C7AF    8B45 10         MOV EAX,DWORD PTR SS:[EBP+10]
0076C7B2    50              PUSH EAX
0076C7B3    8B4D 0C         MOV ECX,DWORD PTR SS:[EBP+C]
0076C7B6    51              PUSH ECX
0076C7B7    8B55 08         MOV EDX,DWORD PTR SS:[EBP+8]
0076C7BA    52              PUSH EDX
0076C7BB    E8 B4000000     CALL License.0076C874                <-------修改这里为MOV EAX,0
0076C7C0    83C4 1C         ADD ESP,1C
0076C7C3    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
0076C7C6    837D FC 00      CMP DWORD PTR SS:[EBP-4],0
0076C7CA    75 70           JNZ SHORT License.0076C83C
0076C7CC    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
0076C7CF    50              PUSH EAX
0076C7D0    E8 74970000     CALL License.00775F49

哈哈,就到这里,继续研究....
不同版本的flexlm有相通之处哈

最新爆破法:
1、程序1
006D25CF  |.  74 0E         JE SHORT Tm.006D25DF
改成
006D25CF  |.  75 0E         JNE SHORT Tm.006D25DF
2、程序2
同程序1
3、程序3
同程序1

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

收藏
免费 0
支持
分享
最新回复 (66)
雪    币: 215
活跃值: (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
感觉还是难找出seed,作出license比较有成就感
2007-7-16 15:21
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
刚作出sig,其实上面的爆破是针对_lp_checkout的破解。
2007-7-16 17:00
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
如何爆破使用时间的代码呢?急呀!!!!!!!!
2007-7-16 18:02
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
破掉_lp_checkout还用破使用时间啊?没license都能用的啊
2007-7-17 15:02
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

呵呵,不错的文章!
2007-7-19 16:21
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
谁能指导一下,如何找seed啊:)
2007-7-19 17:38
0
雪    币: 203
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
爆破之后有的软件确实可以运行,不再有错误提示,可是仍旧有部分模块没有办法用
2007-8-2 13:41
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
秘密就在这
lm_ckout.c
2007-8-2 14:36
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
找不到你所说的那个程序,文件夹下没有这个程序。这是怎么了呢?
2007-8-3 22:49
0
雪    币: 192
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
蛋壳兄的意思是有些模块不能用是因为lm_ckout.c吗?我有个软件就是有些模块还是不能用的。
2007-8-7 23:14
0
雪    币: 1308
活跃值: (722)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
12
有些模块不能用====》了解下这些模块是不是有单独的feature验证
2007-8-8 19:40
0
雪    币: 1308
活跃值: (722)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
建议不要使用TNT,而生成许可文件!
2007-8-8 19:51
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
已制作出LIC文件,采用LMTOOLS.EXE服务程序来验证是可以使用的.但运行程序后就不能使用了,这是为什么呢,是哪里问题呢?请哪位高手帮忙解答下,在此谢谢了,急呀~!~!~!~!~!

还有一问,现制作出的LIC文件里面,SIGN=1A6D4A18159A,
但原正版许可证里面,SIGN="194A E050 3DF8 511E \
我想请教下,这有什么不同吗?是否可以转换呢?

期待高手帮忙解决下!
2007-8-9 00:18
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
15
只是部分适用吧~~
2007-8-9 17:17
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
10.8.0.0可不可以爆破?Realview 3.0好像用的是这个,不知道可不可以这样爆掉?
2007-8-9 17:57
0
雪    币: 2393
活跃值: (1387)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
網上隨便找了幾個軟件來開刀,
沒一個能被爆破法解決的.

有的一定要給合法的 License 才行.
有的光有合法的 License 還不夠, 好像還 Check 別的東東.
2007-8-10 10:16
0
雪    币: 1308
活跃值: (722)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
应用程序有额外的检查函数。
如果sign>20位的话,有可能用了ECC加密。
2007-8-10 11:52
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错,现在单纯用简单flexlm判断的软件已经很少了,花样也多了。。
2007-9-3 21:24
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我就碰到了一个vendor_info函数,搞不定,很郁闷。。。。
2007-9-3 21:48
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
ecc我没碰到,但是碰到了一个vendor_info函数,搞不定,很郁闷。。。。
2007-9-3 21:50
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
这个vendor_info跟vendor_string有什么区别??
2007-9-4 15:47
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
呵呵,写错了是 vendor_string, 关于vendo_string vendor_info的区别你可以看这:
http://www.woodmann.com/forum/showthread.php?t=9393&highlight=vendor_string
2007-9-4 16:20
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
这个vendor_info和俺说的vendor_string一个东西,好多软件把自己的加密算法放到vendor_string,应该跟flexlm 的加密没多大关系把,一般都是和feature name,version expire day之类的x信息相关的, 关键是怎么找到它的加密算法,patch掉或者逆向都可以。
2007-9-4 22:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
楼主和各位高手能否帮我破解一个软件呢,是flexlm 10.8加密的,网上搜不到破解文件,
软件可到http://www.lesoft.co.uk 下载,就是那个Lotus Vehicle Simulation v3.11i
如能破解,发给我一个破解文件,论文急用
我的email:
liuxiangdangcn@msn.com
谢谢了,先!!!
2007-9-10 16:29
0
游客
登录 | 注册 方可回帖
返回
//