MadGoat's Blog

导航

NativeExcel 破解笔记

太乱,笔记而已,待整理。

NativeExcel 是一款Delphi下生成MS Excel文件的工具。它不需要用户安装Microsoft Office,而是直接生成excel文件,开发人员可以用NativeExcel代替传统的基于OLE的Excel 组件。
下载地址:修改的是NativeExcel2.
http://nika-soft.com/

编译生成文件后,双击,提示错误,"This application contains demo version of NativeExcel components. Code="

使用OD,即OLLYICE打开编译后的文件,分析完成后,右键,查找,所有参考字符串.

找到刚才那条字符串后,代码如下:

004A1E4F  |.  E8 B832F6FF   call    0040510C
004A1E54  |.  EB 0D         jmp     short 004A1E63
004A1E56  |>  8D45 FC       lea     eax, dword ptr [ebp-4]
004A1E59  |.  BA D01E4A00   mov     edx, 004A1ED0
004A1E5E  |.  E8 A932F6FF   call    0040510C
004A1E63  |>  83FB 02       cmp     ebx, 2
004A1E66      7D 28         jge     short 004A1E90
004A1E68  |.  6A 00         push    0
004A1E6A  |.  8D45 F0       lea     eax, dword ptr [ebp-10]
004A1E6D  |.  8B4D FC       mov     ecx, dword ptr [ebp-4]
004A1E70  |.  BA DC1E4A00   mov     edx, 004A1EDC                    ;  ASCII "This application contains demo version of NativeExcel components. Code="
004A1E75  |.  E8 D632F6FF   call    00405150
004A1E7A  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ; |
004A1E7D  |.  0FB70D 241F4A>movzx   ecx, word ptr [4A1F24]           ; |
004A1E84  |.  B2 01         mov     dl, 1                            ; |
004A1E86  |.  E8 D901FAFF   call    00442064                         ; \ExportSa.00442064
004A1E8B  |.  E8 BC2EF6FF   call    00404D4C
004A1E90  |>  33C0          xor     eax, eax
004A1E92  |.  5A            pop     edx
004A1E93  |.  59            pop     ecx
004A1E94  |.  59            pop     ecx
004A1E95  |.  64:8910       mov     dword ptr fs:[eax], edx

;号后面为调试器生成的注释,可以看到上面不远出就有一个关键跳转,jge     short 004A1E90,  比较后,不满足条件即跳,跳走后,不执行后面的messagebox和破坏性函数. 从源控件的DCU文件中,查找类似的特征码,即查找  7D28  ,找到后,修改为EB28,EB为JMP的汇编代码,即无论是否满足条件都执行跳转.修改完成.    修改nExcel.dcu.


生成EXCEL第一列第一行单元格内容为:
C(1,1)
This worksheet was created by demo version of NativeExcel library
不定位置会含有注释:
注释:This worksheet was created by demo version of NativeExcel library 
这个字符串是加密的,

已加密字符串
=<&u":'>&=00!u"4&u6'04!01u7,u108:u#0'&<:;u:3u4!<#0-609u9<7'4',

先进行解密

加密字符串共四处。w32dasm更好查找到。

在四处下断,测试是哪一个函数。将其开始push ebp 直接ret。

posted on 2007-09-14 12:41  MadGoat  阅读(4886)  评论(3编辑  收藏  举报