Nisy 发表于 2008-8-20 16:59:43

CHMEditor V1.2 去NAG分析

官方下载:http://www.chmeditor.com/?1251
Download link:
http://sharebee.com/850a8d5a
or:
http://rapidshare.com/files/138641278/CHMEditor.v1.2.Build.051.Full.rar.html
本地下载:https://www.chinapyg.com/viewthread.php?tid=37185

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



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



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:,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:
0062B2D5|.64:8920       MOV DWORD PTR FS:,ESP
0062B2D8|.8D45 FC       LEA EAX,DWORD PTR SS:
0062B2DB|.50            PUSH EAX                                 ; /Arg1
0062B2DC|.A1 2C2B6600   MOV EAX,DWORD PTR DS:            ; |
0062B2E1|.8945 F4       MOV DWORD PTR SS:,EAX             ; |
0062B2E4|.C645 F8 00    MOV BYTE PTR SS:,0                ; |
0062B2E8|.8D55 F4       LEA EDX,DWORD PTR SS:             ; |
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:
0062B2FA|.8B83 74030000 MOV EAX,DWORD PTR DS:
0062B300|.E8 C3B3E3FF   CALL chmEdito.004666C8
0062B305|.8B83 70030000 MOV EAX,DWORD PTR DS:
0062B30B|.8B10          MOV EDX,DWORD PTR DS:
0062B30D|.FF92 D4000000 CALL DWORD PTR DS:
0062B313|.80BB 84030000>CMP BYTE PTR DS:,0
0062B31A|.74 18         JE SHORT chmEdito.0062B334
0062B31C|.A1 3CB86500   MOV EAX,DWORD PTR DS:
0062B321|.8B00          MOV EAX,DWORD PTR DS:
0062B323|.E8 48580000   CALL chmEdito.00630B70
0062B328|.A1 3CB86500   MOV EAX,DWORD PTR DS:
0062B32D|.8B00          MOV EAX,DWORD PTR DS:
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:,EDX
0062B33C|.68 51B36200   PUSH chmEdito.0062B351
0062B341|>8D45 FC       LEA EAX,DWORD PTR SS:
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:
0047D501   . |FF93 10030000 CALL DWORD PTR DS:            ;汗 这里传的是控件的指针一类的 不能JMP
0047D507   > \5B            POP EBX
0047D508   .C3            RETN

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

0062B2BC      55            PUSH EBP                                 ;retn 掉

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



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

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

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


跟进看看:

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

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

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

这样就OK了 比retn省事 看了下K哥的修改 我们想一块了 o(∩_∩)o...哈哈

ZHOU2X 发表于 2008-8-20 17:44:59

0047D4F5   . /74 10         JE SHORT chmEdito.0047D507

jmp 0047D507 就可以吧?

小小子 发表于 2008-8-20 17:49:49

沙发,顶一个,老大厉害/:good
页: [1]
查看完整版本: CHMEditor V1.2 去NAG分析