好友
阅读权限10
听众
最后登录1970-1-1
|
软件大小:2388 KB
软件语言:英文
软件类别:国产软件 / 共享版 / 图像转换
应用平台:Win9x/NT/2000/XP
加入时间:2005-04-25 11:48:30
下载次数:209670
推荐等级:****
开 发 商:http://www.keksoft.com/
软件介绍:魔法转换 是一个功能强大的图像批量处理转换软件。它包括图像浏览、批量转换(可自定义脚本)、字符画转换、图像优化、捕捉图像和创建EXE可执行文件六大部分。使用它可以让你制定转换脚本,然后根据脚本对图像进行批量处理转换。它还支持WINDOWS右键菜单进行转换操作,你还可以自定义WINDOWS右键菜单。同时它还能将图像打包生成.EXE可执行文件,然后可以脱离图像浏览器进行自动播放。魔法转换能支持目前所有流行的图像格式,它的输出格式为:bmp、jpg、gif、png、tif、pcx、wmf、emf、tga、ico、wbmp,还包括txt、rtf、htm等字符画格式。
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试环境】:WinXP、flyODBG、PEiD、LordPE、ImportREC
—————————————————————————————————
【脱壳过程】:
这里使用修改版OllyDbg,如果使用原版,需要处理OutputDebugStringA问题
设置OllyDbg忽略所有其它异常选项。用IsDebug插件去掉OllyDbg的调试器标志。
—————————————————————————————————
一、寻找OEP+解码Dump
0061F74355push ebp
//进入OllyDbg后暂停在这
0061F7448BECmov ebp,esp
0061F7466A FFpush -1
0061F74868 209B6400push 00649B20
0061F74D68 80F46100push 0061F480
0061F75264:A1 00000000mov eax,dword ptr fs:[0]
0061F75850push eax
0061F75964:8925 0000000>mov dword ptr fs:[0],esp
0061F76083EC 58sub esp,58
0061F76353push ebx
0061F76456push esi
0061F76557push edi
0061F7668965 E8mov dword ptr ss:[ebp-18],esp
0061F769FF15 88416400call dword ptr ds:[<&KERNEL32.GetVersion>]
BP WaitForDebugEvent
中断后取消断点,看堆栈:
0012BCB80060F8BF/CALL 到 WaitForDebugEvent 来自 MAGCT.0060F8B9
0012BCBC0012CD90|pDebugEvent = 0012CD90
0012BCC0000003E8\Timeout = 1000. ms
在数据窗口定位到0012CD90处,准备看OEP值
接着下断:BP WriteProcessMemory
现在去代码窗口Ctrl+G:0060F8BF
Ctrl+F在当前位置下搜索命令:or eax,0FFFFFFF8
找到第一处在0060FE8F处,在其上cmp dword ptr ss:[ebp-A34],0处设置断点。
0060FE4383BD CCF5FFFF 0>cmp dword ptr ss:[ebp-A34],0
//下断,Shift+F9中断下来把[ebp-A34]=[0012CD7C]=000001B7清0★
0060FE4A0F8C A8020000jl 006100F8
0060FE508B8D CCF5FFFFmov ecx,dword ptr ss:[ebp-A34]
0060FE563B0D 48AF6400cmp ecx,dword ptr ds:[64AF48]
//注意[64AF48]★
0060FE5C0F8D 96020000jge 006100F8
//解码结束后跳转006100F8在006100F8处下断★
0060FE628B95 40F6FFFFmov edx,dword ptr ss:[ebp-9C0]
0060FE6881E2 FF000000and edx,0FF
0060FE6E85D2test edx,edx
0060FE700F84 AD000000je 0060FF23
0060FE766A 00push 0
0060FE788BB5 CCF5FFFFmov esi,dword ptr ss:[ebp-A34]
0060FE7EC1E6 04shl esi,4
0060FE818B85 CCF5FFFFmov eax,dword ptr ss:[ebp-A34]
0060FE8725 07000080and eax,80000007
0060FE8C79 05jns short 0060FE93
0060FE8E48dec eax
0060FE8F83C8 F8or eax,FFFFFFF8
//找到这里
0060FE9240inc eax
0060FE9333C9xor ecx,ecx
0060FE958A88 1C896400mov cl,byte ptr ds:[eax+64891C]
0060FE9B8B95 CCF5FFFFmov edx,dword ptr ss:[ebp-A34]
0060FEA181E2 07000080and edx,80000007
0060FEA779 05jns short 0060FEAE
0060FEA94Adec edx
0060FEAA83CA F8or edx,FFFFFFF8
0060FEAD42inc edx
0060FEAE33C0xor eax,eax
0060FEB08A82 1D896400mov al,byte ptr ds:[edx+64891D]
0060FEB68B3C8D 70436400 mov edi,dword ptr ds:[ecx*4+644370]
0060FEBD333C85 70436400 xor edi,dword ptr ds:[eax*4+644370]
0060FEC48B8D CCF5FFFFmov ecx,dword ptr ss:[ebp-A34]
0060FECA81E1 07000080and ecx,80000007
0060FED079 05jns short 0060FED7
0060FED249dec ecx
0060FED383C9 F8or ecx,FFFFFFF8
0060FED641inc ecx
0060FED733D2xor edx,edx
0060FED98A91 1E896400mov dl,byte ptr ds:[ecx+64891E]
0060FEDF333C95 70436400 xor edi,dword ptr ds:[edx*4+644370]
0060FEE68B85 CCF5FFFFmov eax,dword ptr ss:[ebp-A34]
0060FEEC99cdq
0060FEEDB9 1C000000mov ecx,1C
0060FEF2F7F9idiv ecx
0060FEF48BCAmov ecx,edx
0060FEF6D3EFshr edi,cl
0060FEF883E7 0Fand edi,0F
0060FEFB03F7add esi,edi
0060FEFD8B15 2CAF6400mov edx,dword ptr ds:[64AF2C]
0060FF038D04B2lea eax,dword ptr ds:[edx+esi*4]
0060FF0650push eax
0060FF078B8D CCF5FFFFmov ecx,dword ptr ss:[ebp-A34]
0060FF0D51push ecx
0060FF0EE8 2F210000call 00612042
0060FF1383C4 0Cadd esp,0C
0060FF1625 FF000000and eax,0FF
//这里Patch ★
0060FF1B85C0test eax,eax
0060FF1D0F84 D5010000je 006100F8
Patch代码:
0060FF16FF85 CCF5FFFFinc dword ptr ss:[ebp-0A34]
0060FF1CC705 4CAF6400 0>mov dword ptr ds:[64AF48+4],1
0060FF26E9 18FFFFFFjmp 0060FE43
Shift+F9,中断在上面BP WriteProcessMemory断点处。看数据窗口:
0012CD9001 00 00 00 A8 0B 00 00 40 0E 00 00 01 00 00 80...?..@.... |
|