飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4096|回复: 2

[原创] CHMEditor V1.2 去NAG分析

[复制链接]

该用户从未签到

发表于 2008-8-20 16:59:43 | 显示全部楼层 |阅读模式
官方下载:http://www.chmeditor.com/?1251
Download link:
http://sharebee.com/850a8d5a
or:
http://rapidshare.com/files/1386 ... d.051.Full.rar.html
本地下载:https://www.chinapyg.com/viewthread.php?tid=37185

程序启动时有一个NAG 提示15天 目标如图:

01.GIF

Aspr的壳 我不懂脱壳 脚本一下 没自效检 很好 Del的程序 DeDe一下 发现端倪

00.GIF

OD一下:

0062B2BC      55            PUSH EBP                                 ;  中断看堆栈
0062B2BD      8BEC          MOV EBP,ESP
0062B2BF      83C4 F4       ADD ESP,-0C
0062B2C2  |.  53            PUSH EBX
0062B2C3  |.  33C9          XOR ECX,ECX
0062B2C5  |.  894D FC       MOV DWORD PTR SS:[EBP-4],ECX
0062B2C8  |.  8BD8          MOV EBX,EAX
0062B2CA  |.  33C0          XOR EAX,EAX
0062B2CC  |.  55            PUSH EBP
0062B2CD  |.  68 4AB36200   PUSH chmEdito.0062B34A
0062B2D2  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
0062B2D5  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
0062B2D8  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0062B2DB  |.  50            PUSH EAX                                 ; /Arg1
0062B2DC  |.  A1 2C2B6600   MOV EAX,DWORD PTR DS:[662B2C]            ; |
0062B2E1  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX             ; |
0062B2E4  |.  C645 F8 00    MOV BYTE PTR SS:[EBP-8],0                ; |
0062B2E8  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]             ; |
0062B2EB  |.  33C9          XOR ECX,ECX                              ; |
0062B2ED  |.  B8 60B36200   MOV EAX,chmEdito.0062B360                ; |ASCII "%d days remaining"
0062B2F2  |.  E8 0911DEFF   CALL chmEdito.0040C400                   ; \chmEdito.0040C400
0062B2F7  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
0062B2FA  |.  8B83 74030000 MOV EAX,DWORD PTR DS:[EBX+374]
0062B300  |.  E8 C3B3E3FF   CALL chmEdito.004666C8
0062B305  |.  8B83 70030000 MOV EAX,DWORD PTR DS:[EBX+370]
0062B30B  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
0062B30D  |.  FF92 D4000000 CALL DWORD PTR DS:[EDX+D4]
0062B313  |.  80BB 84030000>CMP BYTE PTR DS:[EBX+384],0
0062B31A  |.  74 18         JE SHORT chmEdito.0062B334
0062B31C  |.  A1 3CB86500   MOV EAX,DWORD PTR DS:[65B83C]
0062B321  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0062B323  |.  E8 48580000   CALL chmEdito.00630B70
0062B328  |.  A1 3CB86500   MOV EAX,DWORD PTR DS:[65B83C]
0062B32D  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
0062B32F  |.  E8 4C570000   CALL chmEdito.00630A80
0062B334  |>  33C0          XOR EAX,EAX
0062B336  |.  5A            POP EDX
0062B337  |.  59            POP ECX
0062B338  |.  59            POP ECX
0062B339  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
0062B33C  |.  68 51B36200   PUSH chmEdito.0062B351
0062B341  |>  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
0062B344  |.  E8 439BDDFF   CALL chmEdito.00404E8C
0062B349  \.  C3            RETN


栈数据:
0012F9B4   0047D507  返回到 chmEdito.0047D507
0012F9B8   0012FB98
0012F9BC   00481242  返回到 chmEdito.00481242 来自 chmEdito.0040414C

返回到 0047D507 看看

0047D4F5   . /74 10         JE SHORT chmEdito.0047D507
0047D4F7   . |8BD8          MOV EBX,EAX
0047D4F9   . |8BD0          MOV EDX,EAX
0047D4FB   . |8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
0047D501   . |FF93 10030000 CALL DWORD PTR DS:[EBX+310]              ;  汗 这里传的是控件的指针一类的 不能JMP
0047D507   > \5B            POP EBX
0047D508   .  C3            RETN

既然这里是判断程序的时间 retn 掉行不  试试

0062B2BC      55            PUSH EBP                                 ;  retn 掉

结果发现不行 程序的翻译功能挂掉了 /:L  为什么呢 程序的效检 还是 ???

02.GIF

先不告诉你  破解关键靠猜 ^_^  

我是这样想的 一个是这个函数体在搞怪 另一个就是程序的效检 我肯定是先想效检 后来跟了一下 发现无果 然后关注下函数体 发现这里有一个跳转

0062B31A  |. /74 18         JE SHORT chmEdito.0062B334               ;  关注这个跳转
0062B31C  |. |A1 3CB86500   MOV EAX,DWORD PTR DS:[65B83C]
0062B321  |. |8B00          MOV EAX,DWORD PTR DS:[EAX]
0062B323  |. |E8 48580000   CALL chmEdito.00630B70                   ;  跟进看看


跟进看看:

00630B70  /$  53            PUSH EBX
00630B71  |.  8BD8          MOV EBX,EAX
00630B73  |.  8B83 84040000 MOV EAX,DWORD PTR DS:[EBX+484]
00630B79  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
00630B7B  |.  FF92 E8000000 CALL DWORD PTR DS:[EDX+E8]
00630B81  |.  8B83 84040000 MOV EAX,DWORD PTR DS:[EBX+484]
00630B87  |.  8B80 84020000 MOV EAX,DWORD PTR DS:[EAX+284]
00630B8D  |.  BA C80B6300   MOV EDX,chmEdito.00630BC8                ;  ASCII "Google"
00630B92  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
00630B94  |.  FF51 38       CALL DWORD PTR DS:[ECX+38]
00630B97  |.  8B83 84040000 MOV EAX,DWORD PTR DS:[EBX+484]
00630B9D  |.  8B80 84020000 MOV EAX,DWORD PTR DS:[EAX+284]
00630BA3  |.  BA D80B6300   MOV EDX,chmEdito.00630BD8                ;  ASCII "Yahoo"
00630BA8  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
00630BAA  |.  FF51 38       CALL DWORD PTR DS:[ECX+38]
00630BAD  |.  33D2          XOR EDX,EDX
00630BAF  |.  8B83 84040000 MOV EAX,DWORD PTR DS:[EBX+484]
00630BB5  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
00630BB7  |.  FF91 E0000000 CALL DWORD PTR DS:[ECX+E0]
00630BBD  |.  5B            POP EBX
00630BBE  \.  C3            RETN

原来 翻译功能的句柄需要这个函数来加载 汗死 这整个流程走下来  没有下口的地方了 所以 ……

0062B2BD     /EB 5D         JMP SHORT chmEdito.0062B31C   // 去掉上边的验证流程

这样就OK了 比retn省事 看了下K哥的修改 我们想一块了 o(∩_∩)o...哈哈
PYG19周年生日快乐!

该用户从未签到

发表于 2008-8-20 17:44:59 | 显示全部楼层
0047D4F5   . /74 10         JE SHORT chmEdito.0047D507

jmp 0047D507 就可以吧?
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-14 11:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-8-20 17:49:49 | 显示全部楼层
    沙发,顶一个,老大厉害/:good
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表