首页
社区
课程
招聘
[旧帖] [原创]某易语言程序破解(申请邀请码) 0.00雪花
发表于: 2009-12-1 13:05 1896

[旧帖] [原创]某易语言程序破解(申请邀请码) 0.00雪花

2009-12-1 13:05
1896
程序压缩后有快2M,也因为是还未过时的国产软件,就不发了,先对该程序进行初步观察,只有一个exe,无dll等,有fne,fnr文件,估计为易语言所写,对主程序用PEID扫描结果为E Language -> WuTao   * Sign.By.fly *,确定为易语言所编。
    首先直接运行,弹出注册窗口(程序信息没截):

      应为一机一码的本地认证模式,OD载入,运行弹出无法注册对话框,在命令行bp MessageBoxA,跟踪发现为:
00414848    E8 ECBF0200     call    00440839                        ;判断call
0041484D    83C4 1C         add     esp, 1C
00414850    85C0            test    eax, eax
00414852    0F84 15010000   je      0041496D                         ; 跳转则机器码获取异常

   若将414852处的跳转nop掉,运行窗口为:

为节省时间,我并不打算去跟踪到底是什么原因导致了这个异常,直接运行程序,出正常窗口后,直接用OD进行附加

   对“注册”按钮下WM_LBUTTONUP消息断点,来到单击事件的入口处:
00414CE4    55              push    ebp
00414CE5    8BEC            mov     ebp, esp
00414CE7    81EC 14000000   sub     esp, 14
00414CED    68 20000000     push    20
00414CF2    E8 2ABB0200     call    00440821
00414CF7    83C4 04         add     esp, 4
00414CFA    8945 FC         mov     dword ptr [ebp-4], eax
00414CFD    8BD8            mov     ebx, eax
00414CFF    8BF8            mov     edi, eax
00414D01    33C0            xor     eax, eax

    往下看:
00414D4B    83C4 04         add     esp, 4
00414D4E    8945 F8         mov     dword ptr [ebp-8], eax
00414D51    68 5D934000     push    0040935D                         ; ASCII "\sdolinqu.cme"                                        ;将注册码保存到文件sdolinqu.cme中
00414D56    FF75 F8         push    dword ptr [ebp-8]
00414D59    B9 02000000     mov     ecx, 2
00414D5E    E8 A88AFFFF     call    0040D80B

    再往下:
00414EEF    E8 27B90200     call    0044081B   ; 创建新的进程(原程序)
00414EF4    83C4 28         add     esp, 28
00414EF7    8B5D F0         mov     ebx, dword ptr [ebp-10]
00414EFA    85DB            test    ebx, ebx
00414EFC    74 09           je      short 00414F07
00414EFE    53              push    ebx
00414EFF    E8 11B90200     call    00440815
00414F04    83C4 04         add     esp, 4
00414F07    6A 00           push    0
00414F09    E8 EFB80200     call    004407FD ; 结束当前进程

可以看出这是一个重启自验证

    OD重新载入程序,Nop掉00414852    0F84 15010000   je      0041496D
对CreateFileA下断来到:
004149BC    68 5D934000     push    0040935D                         ; ASCII "\sdolinqu.cme"
004149C1    FF75 F8         push    dword ptr [ebp-8]
004149C4    B9 02000000     mov     ecx, 2
004149C9    E8 3D8EFFFF     call    0040D80B
004149CE    83C4 08         add     esp, 8
004149D1    8945 F4         mov     dword ptr [ebp-C], eax
004149D4    8B5D F8         mov     ebx, dword ptr [ebp-8]

00414B79   /75 05           jnz     short 00414B80
00414B7B   |B8 43364000     mov     eax, 00403643
00414B80   \50              push    eax
00414B81    68 01000000     push    1
00414B86    BB 50010000     mov     ebx, 150
00414B8B    E8 8BBC0200     call    0044081B
00414B90    83C4 10         add     esp, 10
00414B93    8945 D4         mov     dword ptr [ebp-2C], eax   ;这里的eax返回的是注册码

00414BA3    83C4 04         add     esp, 4
00414BA6    8B45 D4         mov     eax, dword ptr [ebp-2C]
00414BA9    50              push    eax
00414BAA    FF75 EC         push    dword ptr [ebp-14]
00414BAD    E8 728FFFFF     call    0040DB24   ;真假注册码进行比较

     因为这里正确的注册码并不是根据正确的机器码得到的,所以要得到真正的注册码可以做一个内存注册机,暴破则可将00414BE7   /0F84 45000000   je      00414C32     nop掉,我机器的注册码是:BD3741188B76997D54B19864ED4EDB37

分析完毕,谢谢!希望可以可以给一个邀请码!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
  • 1.jpg (8.38kb,170次下载)
  • 2.jpg (11.44kb,168次下载)
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 249
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
下消息断点 没办法返回到程序领空 如何解决?
2009-12-2 14:49
0
雪    币: 120
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
从堆栈返回,或者在代码段上下访问断点,重复几次直到到程序领空为止
2009-12-3 09:05
0
雪    币: 33
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没有看到文件吗?
2012-10-15 16:26
0
游客
登录 | 注册 方可回帖
返回
//