编译生成文件后,双击,提示错误,"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。