论坛: 编程破解 标题: [转帖]ToTxtv1.0.2破解[去除NAG实例分析] 复制本贴地址    
作者: yongmin [yongmin]    论坛用户   登录
作者:鹭影依凌
转贴自:一蓑烟雨
好长时间没发帖了
一来最近期末考试,时间较紧,压力太大
二来没有什么像样的成果
文章定位,:小菜级别,高手飘过
上午刚考完试,索性去国外下载了一个小软件,运行了一看
晕,都没有注册窗口
这是一个文件类型转化小工具
说白了就是将
*.doc, *.xls, *.ppt - Microsoft Office documents
*.htm* - HTML documents
*.pdf - Adobe PDF
格式的文档转化为txt文本格式
拖动一个word上去:
-_-有个提示对话框:



未命名.jpg (13.35 KB)
2008-1-4 15:00
点否,开始转化
原来就是一个nag图标呀,好,目标明确!
刚才出现的是一个对话框
那么我们就下对话框断点bp MessageBoxA
运行程序,拖动一个word文档到软件上,程序被OD断下
77D5058A >  8BFF            mov    edi, edi                    //  程序中断在这
77D5058C    55              push    ebp
77D5058D    8BEC            mov    ebp, esp
77D5058F    833D BC04D777 0>cmp    dword ptr [77D704BC], 0
77D50596    74 24          je      short 77D505BC
77D50598    64:A1 18000000  mov    eax, dword ptr fs:[18]
77D5059E    6A 00          push    0
77D505A0    FF70 24        push    dword ptr [eax+24]
77D505A3    68 240BD777    push    77D70B24
77D505A8    FF15 C812D177  call    dword ptr [; kernel32.InterlockedCompareExchange
77D505AE    85C0            test    eax, eax
77D505B0    75 0A          jnz    short 77D505BC
77D505B2    C705 200BD777 0>mov    dword ptr [77D70B20], 1
77D505BC    6A 00          push    0
77D505BE    FF75 14        push    dword ptr [ebp+14]
77D505C1    FF75 10        push    dword ptr [ebp+10]
77D505C4    FF75 0C        push    dword ptr [ebp+C]
77D505C7    FF75 08        push    dword ptr [ebp+8]
77D505CA    E8 2D000000    call    MessageBoxExA
77D505CF    5D              pop    ebp
77D505D0    C2 1000        retn    10
ctrl+F9 ,弹出对话框,我们选“NO”
004760CE  |.  BA 03000000  mov    edx, 3
004760D3  |.  E8 8CEBF8FF  call    00404C64
004760D8  |.  8B85 4CE7FFFF mov    eax, dword ptr [ebp-18B4]
004760DE  |.  E8 C1ECF8FF  call    00404DA4
004760E3  |.  50            push    eax                              ; |Text
004760E4  |.  8B45 F4      mov    eax, dword ptr [ebp-C]          ; |
004760E7  |.  50            push    eax                              ; |hOwner
004760E8  |.  E8 F312F9FF  call            ; \MessageBoxA
004760ED  |.  8BF0          mov    esi, eax
004760EF  |.  8BC6          mov    eax, esi
004760F1  |.  83F8 07      cmp    eax, 7                          ;  Switch (cases 1..7)
004760F4  |.  77 4F        ja      short 00476145
004760F6  |.  FF2485 FD6047>jmp    dword ptr [eax*4+4760FD]
004760FD  |.  45614700      dd      totxt.00476145                  ;  分支表 被用于 004760F6
00476101  |.  1D614700      dd      totxt.0047611D
00476105  |.  24614700      dd      totxt.00476124
再次CTRL+F9
00476178  .^\EB D8        jmp    short 00476152
0047617A  .  8BC6          mov    eax, esi
0047617C  .  5F            pop    edi
0047617D  .  5E            pop    esi
0047617E  .  5B            pop    ebx
0047617F  .  8BE5          mov    esp, ebp
00476181  .  5D            pop    ebp
00476182  .  C2 0C00      retn    0C
再来一次~CTRL+F9
00476DE2  |.  9E            sahf
00476DE3  |.  72 5F        jb      short 00476E44
00476DE5  |.  A1 4CC24700  mov    eax, dword ptr [47C24C]
00476DEA  |.  8038 00      cmp    byte ptr [eax], 0
00476DED      75 55        jnz    short 00476E44                  ;  //再往下走就提示注册咯
00476DEF  |.  68 986F4700  push    00476F98                        ;  ASCII "To disable this dialog you should buy the full version license."
00476DF4  |.  6A 06        push    6
00476DF6  |.  6A 68        push    68
00476DF8  |.  8BC6          mov    eax, esi
00476DFA  |.  E8 A508FDFF  call    004476A4
00476DFF  |.  B9 E06F4700  mov    ecx, 00476FE0                    ;  ASCII "Buy a license right now?"
00476E04  |.  BA 04704700  mov    edx, 00477004                    ;  ASCII "Non-registered mode"
00476E09  |.  E8 26F1FFFF  call    00475F34
00476E0E  |.  83F8 06      cmp    eax, 6
00476E11  |.  75 31        jnz    short 00476E44
00476E13  |.  8D85 E4FBFFFF lea    eax, dword ptr [ebp-41C]
00476E19  |.  E8 56D0FFFF  call    00473E74
00476E1E  |.  8B8D E4FBFFFF mov    ecx, dword ptr [ebp-41C]
00476E24  |.  8D85 E8FBFFFF lea    eax, dword ptr [ebp-418]
00476E2A  |.  BA 20704700  mov    edx, 00477020                    ;  ASCII "http://www.atrise.com/buy/"
00476E2F  |.  E8 BCDDF8FF  call    00404BF0
00476E34  |.  8B85 E8FBFFFF mov    eax, dword ptr [ebp-418]
00476E3A  |.  E8 3DCFFFFF  call    00473D7C
00476E3F  |.  E9 04010000  jmp    00476F48
00476E44  |>  E8 8F3BF9FF  call    0040A9D8
00476E49  |.  A1 8CC54700  mov    eax, dword ptr [47C58C]
00476E4E  |.  DC20          fsub    qword ptr [eax]
00476E50  |.  D81D 3C704700 fcomp  dword ptr [47703C]
00476E56  |.  9B            wait
00476E57  |.  DFE0          fstsw  ax
00476E59  |.  9E            sahf
00476E5A  |.  72 5A        jb      short 00476EB6
00476E5C  |.  E8 773BF9FF  call    0040A9D8
00476E61  |.  A1 8CC54700  mov    eax, dword ptr [47C58C]
00476E66  |.  DC20          fsub    qword ptr [eax]
00476E68  |.  D81D 40704700 fcomp  dword ptr [477040]
00476E6E  |.  9B            wait
00476E6F  |.  DFE0          fstsw  ax
00476E71  |.  9E            sahf
明显:“00476DED      75 55        jnz    short 00476E44 ”
00476ded是关键跳转,修改为JMP
OD右键保存,再次运行,,拖动文件,就直接完成转化了,无nag提示
后话:注意观察
(1)00476DE3  |.  72 5F        jb      short 00476E44
(2)00476DED      75 55        jnz    short 00476E44 
这两个调转都是跳到00476E44
将jb修改为jmp也是可以的
第二中修改方法:
00476DE5  |.  A1 4CC24700  mov    eax, dword ptr [47C24C]
00476DEA  |.  8038 00      cmp    byte ptr [eax], 0
00476DED      75 55        jnz    short 00476E44 
为了让跳转实现,我们可以把cmp[eax],0修改为cmp[eax],1
明确一点:所有的修改都是为了让跳转实现~
如果程序在别处还有校验,首先的思路是先研究下地址47C24C
参考位于 totxt:.text 到常量 47C24C
地址      反汇编                                    注释
00476ABA  mov    edx, dword ptr [47C24C]          (初始 CPU 选择)
00476DE5  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
00476E74  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
004773FB  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
00477452  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
00477623  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
0047768E  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
00477877  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
004778E2  mov    eax, dword ptr [47C24C]          [0047C24C]=0048068C
刚下载的一个程序,我们拿过来首先要对它的几本属性研究一下
比如:编写语言,是否加壳,保护方式
进一步:定位程序校验正版代码段
本例是delphi语言编写的,我们完全可以轻松用OD搞定,这个时候就没有必要动用DEDE
当然,在我们研究一个软件,没有头绪的时候,心中要有DEDE这个思路
最适合的,才是最好的!
提示:去除NAG最好不要用资源修改工具直接删除资源
那样可能会导致程序运行时加载资源失败,程序报错


地主 发表时间: 08-01-07 11:07

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号