|
![]() | 作者: 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号