【原创】献给新手(一)--不用脱壳就能调试加壳软件(SoftICE还旧之旅)
於版,我己不能在新人交流投稿发贴,但贴是要新手入看的,因是自己加入论坛,搞不清楚,所以就先到了『求助问答区』,但因不是真的悬赏贴,所以发得心理怕怕的,在发
『伴你成长』园地,就快把之前的贴移到,不是要灌水重发贴,先前不懂版的地方,版主及各位雪友多多原!!
【作者】ninymay
【说明】我是,了一篇於OCX控件的破解文章
(http://bbs.pediy.com/showthread.php?p=905878#post905878)
除了得版主了邀请码外,也勾起大家的,坐光机回到SoftICE的年代,雪友whypro希望我再多篇,所以我就抱著回大家的心了,我水平不高,的不好多多包涵
老,OllyDBG真的太好用了,不用安,什作系都能Run,界面又漂亮,插件多到翻...不用它真是笨蛋咧
但如果你是初软件调试的新手,恐怕OllyDBG的美好光很快就去了,因它有很多事情不是您想的那美好,在扒一下文就知道,新手的汇编能力不好,遇到加壳软件,如果有脱壳机或脱壳插件、脱壳本...,那程序入跟不了多久、看不了多少机就放了,即使不放也是白做工,去不知道要做什?所以老得破解入,调试软件真不是人的...
如果新人先SoftICE下手就不一了,它然不美,而且很挑作系,最重要是得一步一步去安...然,但起,上都有明:
http://www.pediy.com/tools/Debuggers...CE/SoftICE.htm
http://bbs.pediy.com/showthread.php?t=85389
如果有,我也把我的安心得再上...
一旦起,了,您就了:
您不用先去付的PE格式、IAT表格、不用去管什演算法、加解密法,您可以先比人性的Windows API下手,配合常用的机,就能有小成就,什呢?因:
『SoftICE可以加壳软件直接下 Windows API』(比如框出用的 MessageBox...),不用先脱壳,就能在要害的地方,段乎有程式可以『完全』不用Windows API,只要用 API, SoftICE就能您下,而且不管再害的壳它是得行,一旦行起,它自己得先脱壳,您就等著它自投就好了
接下您就可以好好分析了,才有趣,才不把新手跑嘛>_<,而且又回,如果用SoftICE中在的地方都法往下分析,那就算完壳你,不是一看不懂,所以尤其是您要付的是『有壳的意程序』,重是要分析意程序,而不是壳,
如果可以不壳就分析,就不用多一道手了不
好了,不多,才是真的,先好了,是新手入的,大牛千挑毛病啊!!有OllyDBG有不好,OllyDBG的死忠者,千不要找我,我只是希望借SoftICE的方便,
更多的新手入之
【破解等】入
【使用工具】SoftICE(Driver Studio V3.2)
【破解平台】VM6.04/XP SP2
【软件名称】RenameRegKey UPX.exe MyReg1.reg
【下载地址】RenameRegKey.rar
【软件简介】非常的程序,供用,有Anti-Debug,不是否在VM下行...
【软件特性】Windows 登(Registry)做修改的作
【软件大小】184KB(解後)
【保护方式】UPX 2.92b--最的壳,丈高平地起,一步一步慢慢
【破解目的】用SoftICE在未壳的情下就可以分析程序是如何修改登加以阻止,
以此了解存取登的相API
【破解声明】本例程式如果您用壳机壳後,可以再用任何加壳方式加壳回去,都可以再用本篇
介的方式在未壳的情下成功下喔
【破解内容】
因是教程,所以也大家摸索了,更不必去放在沙盒中或什捕境中,我先告大家程式要嘛?
大家先用事本把MyReg1.reg打看看,
它在
HKEY_LOCAL_MACHINE\SOFTWARE\
新增一机名字叫做 MyReg1
且在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
新增一机叫做 “Virus” 机值 “Virus.exe”
我把事本,用滑鼠MyReg1.reg,不要理系的警告,按下 “定” 机入登,如果您有安防毒程式
也它通,否後面法。
在打登程式(RegEdit.EXE)到HKEY_LOCAL_MACHINE\SOFTWARE\
看到左方新增了一名叫MyReg1的机
再到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
看到右方多了一行Virus REG_SZ Virus.exe
放在位置的程序是每次Windows机都行的,所以是意程式兵家必之地!
※我例程序是示用的,所以很友善,真的意程式就去除(不是改名而已)你重要的机,且在增加(而不是除)一机,以便下次Windows可以入它的意程序!!!!!
但透例,就可以了解登的API操作手法,日後可以通用
一切就就先行RenameRegKey UPX.exe程式
我看到主面有大Button如果按下Button1看到一框告你MyReg1成MyReg2了
再到登程式,按一下F5它重新整理,在再去看看HKEY_LOCAL_MACHINE\SOFTWARE\下的MyReg1不了成MyReg2
而按下Button2出值己清除完成的框,
再到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Virus那一行值己不了不?
好了,在假你是初者不壳,但要付程序或是分析它的程序在哪要怎做呢?
如果你叫出OllyDBG假是全新的壳或是壳有插件可以忙壳,那入RenameRegKey UPX.exe程式就出警告息
不理它入,由於我已知道它是在登做手,所以我可以下RegOpenKeyA做中,在Windows要存取登都必需要靠API登,如果手有MSDN,可以查一下它的原型宣告:
LONG RegOpenKey(
HKEY hKey, // handle to open key 在本教程中用 HKEY_LOCAL_MACHINE
LPCTSTR lpSubKey, // name of subkey to open
PHKEY phkResult // handle to open key
);
中有RegOpenKeyA, RegOpenKeyW, RegOpenKeyExA, RegOpenKeyExW四 A是For ANSI, W是For Unicode版本
在本教程中用的是RegOpenKeyA
在我在下方的Command入BPX RegOpenKeyA
出的框怪怪的?!不像是有效的中,因若是有效的中是出的框才
才算是承RegOpenKeyA是有效的中,但在先不管那多了,全速行下去看不得到就知道了!在OllyDBG全速行後,主面出了,按一下Button1果告你MyReg1成MyReg2的框出了,在壳的情下,OllyDBG什也到??
如果到的面是才啦!
如果不想慢慢的起,您可以有另外一
在SoftICE上了,先把VMware打,先SoftICE,先到始程式集 Compuware DriverStudioSettings 叫出SoftICE的定程式在左 SoftICE Initialzation中的Exports右方是不是有C:\WINDOWS\system32\advapi32.dll字,如果有要自己按下右的 “Add…”自行加入,才能使SoftICERegOpenKeyAAPI等一下才能正入做中。
在可以SoftICE了,因SoftICE是Ring 0的除工具,了避免等一下做任何作都SoftICE我最好先行 RenameRegKey UPX.exe之後才去按Ctrl+D叫出SoftICE然後入BPX RegOpenKeyA了保起可以入BL指令已被接受
各位可以在截中看到RenameRegKey.exe已了,在按F5SoftICE先消失,之後就可以按下RenameRegKey.exe 中的Button1了一下子SoftICE就跳起,它已到RenameRegKey UPX.exe登表的作了,
只是在在Advapi32.dll的空上,我可以中下方色那行字:
advapi32!.text+0002B41A的字得知,
在我要按一下F12它可以回到
RenameRegKey UPX.exe的空
在回到RenameRegKey UPX.exe的空,往下看就可以知道程式是怎去更改登表或是除登表的:原登表不像案管那可以直接下Rename的指令去修改案或目名,至少有RegRenameKeyAPI嘛!它必需先重新造一新的名,然後把原的容一份到新的中,最後再把原的掉。
考到新手可能械的不是熟,在是稍微一下追的程好了。我程式步行(F10)下去,要特注意分岐的地方,像第一分岐是4019D1的地方(以我的截,因不同的器上跑程式地址可能有所不同!),JZ 4019D8,SoftICE告我件
成立所以程序跳到4019D8(SoftICE有一往下的小箭提示),在做了最重要的一件是就是呼叫RegCreateKeyA,建立一名MyReg2的,之後到了第二分岐4019EE JZ 4019FD,SoftICE同告我件成立,所以跳到4019FD,到了4019FD就去呼叫401A38
是RegCreateKey的原型宣告
LONG RegCreateKey(
HKEY hKey, // handle to an open key
LPCTSTR lpSubKey, // subkey name
PHKEY phkResult // buffer for key handle
);
我按F8跟看看,一始看不到什API,如果有趣可以自己分析看看,一直走到401A69 JNZ 401A73,SoftICE告我要跳,接下情就明朗了,程式先叫用了RegEnumValueA去列原MyReg1面的值,然後到 401AB8 JNZ 401ADE SoftICE回不跳,不跳就了,下面才是重:
先叫用RegSetValueExA入和MyReg1列出一的值到MyReg2面,再呼叫
RegDeleteValueA去掉MyReg1面的值,在401AE2的地方查MyReg1的机值都列完了?如果有就回跳到401A84重上面的作直到整MyReg1的西都到
MyReg2面止。
是RegEnumKey的原型宣告
LONG RegEnumKey(
HKEY hKey, // handle to key to query
DWORD dwIndex, // index of subkey to query
LPTSTR lpName, // buffer for subkey name
DWORD cchName // size of subkey name buffer
);
是RegSetValueEx的原型宣告
LONG RegSetValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
DWORD Reserved, // reserved
DWORD dwType, // value type
CONST BYTE *lpData, // value data
DWORD cbData // size of value data
);
是RegDeleteValue的原型宣告
LONG RegDeleteValue(
HKEY hKey, // handle to key
LPCTSTR lpValueName // value name
);
在您是不是恍然大悟,Windows成的API真的很重要不?熟悉了之後要分析意程式真的很方便,配合SoftICE就算不壳也可以截下
且把它分析得清清楚楚啊!
如果不放心,可以把在看到械便抄下然後去HexEdit或是UltraEdit把RenameRegKey UPX.exe入後搜看看,是不是根本找不到些械?所以可以明程序案仍是未壳的,但一旦行起被SoftICE下的是已壳乾的,如果有用保的,也保一定被原成x86的械了啦^^
如同一始的候的,本例程式如果您用壳机壳後,可以再用任何加壳方式加壳回去,都可以再用本篇介的方式在未壳的情下成功下分析喔!各位不妨
而再害的客不管怎小心,都很完全不用Windows API出一像的意程式,多是用冷的、低的API(例如zwOpenkey...以後有的文介),且去Hide一些知名的追,再不就是Hook住APIAPI先做自己想做的事情,做完了再去做原本API做的事情,而些都很逃SoftICE的法眼,上面的明和示相信者可以知道SoftICE的的有它到的地方是OllyDBG所不及的,在入可以新手一些助。
【後】
挑剔的者也到如果不壳,那在找到性的程式要修改,但是到了案中找又找不到,那又如何能修改呢?心,不壳不但可以分析也可以修改,才是完美的破解方案,期待下一篇:新手(二)--不用脱壳就能修改加壳软件(SoftICE之旅)。
看完
- 标 题:献给新手(一)--不用脱壳就能调试加壳软件(SoftICE还旧之旅)
- 作 者:ninymay
- 时 间:2011-01-04 13:27:17
- 链 接:http://bbs.pediy.com/showthread.php?t=127562