Принадлежности:
| SoftIce | Можете да го изтеглите от http://freak-inc.hit.bg/Download.htm |
Като за начало сте кажа 2 думи за SoftIce :).SoftIce не е несто за ядене , ното нов филм по кината :).Това е най-добрия създаван до сега активен дебъгер на NuMеga.Една малка но съществена подробност е че е предназначен само за Windows95 и за ниакои версии на Windows98 но не на всички.Разбира се има хиляди пачове които подкарват SoftIce и на WindowsXP и на 2000 ,NT, че даже и на NET SERVER.Когато си инсталирате SoftIce ви препоръчвам да оставите сетъпа да ви конфигурира АUTOEXEC.BAT-а , че да не си губите времето да го правите ръчно.Но ако държите да ви е чиста работата просто си го конфигурирайте ръчно като добавите на нов ред стринга C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE който представлява мястото на WINICE.EXE когато сте инсталирали SoftIce.
Веднъж инсталиран , SoftIce си стои мирно и кротко зад WINDOWS-a и чака само да му наредите да се задейства.А това стажа като задърйите CTRL и "D" (CRLT+D).
Така да започнем сега с приятната част : Работа с SoftIce :)
Като включите SoftIce би триябвало да виждате регистрите на процесора, кода на asm който предсоти да се изпълни тепурва от процесора в дадената нишка(процес), кода в ASCI ,името на файла който се изпълниява , както и неговия процес.
В горния десен ъгъл се намират флаговете и би триябвало да виждате следното :
O D I S Z A P C
| | | |
| | | |
| |
| | | | | +------- Carry
Flag
| | | | | |
+--------- Parity Flag
| | | |
| +----------- Auxiliary Carry Flag
| |
| | +------------- Zero Flag (МНОГО ИЗПОЛЗВАЕМО!! )
|
| | +--------------- Sign Flag
| |
+----------------- Interrupt Flag
| +-------------------
Direction Flag
+--------------------- Overflow Flag
Когато краквате е желателно да следите Zero Flag ,застото той се използва от командите JZ , JNZ , JE и JNE.
В прозореца с кода на asm виждате адреса , kода HEX , командите на asm , както и параметрите им.В PROT-а виждате адреса на HEXa , самият HEX както и ASCI-кода.Ако напишите например "d 4F9D2B " , адреса в PROT-а сте се промени на 4F9D2B.И сте видите съдържанието ж HEX на този адрес.
Следващата стъпка е да се запознаем с най-вайните и основн команди на SoftICE-а
| Командата с пример | Обяснение |
| D 4F92B | Показва HEXa и ASCII-то на адрес 4F92B |
| R EAX 40 | Снойноста на регистрана ЕАX става на 40 |
BREAKPOINT ON EXECUTE
---------------------------------
SYNTAX:
bpx <името на API-то>
BREAKPOINT-тите служат за пускане на
SoftIce по времето на някоя програма която се опирвате да дебъгнете или
кракнете.Когато SoftIce види процесора да изпулнява дадена функция която сте
слойили в BREAKPOINT-а , SoftIce-а веднага прекратява работата на
WINDOWS-a както и на всички останали програми и ви връща в SoftIce.BREAKPOINT-и
се слагат като се напише "bpx " и името на API-функцията
Пример:
1.Влизате в SoftIce ( CTRL-D ), и написвате 'bpx
GetLocalTime'
2.Връщате се към WINDOWS-а ( CTRL-D )
3. Щракнете 2 пъти
върху часовника на WINDOWS-a (обикновено в taskbar )
SoftIce се
появява ,при започването на call-а за 'GetLocalTime',
Ако натисните F11 ще се върните в кода от където се е извикала
фукнцията.
Друга функции използвана обикновено за breakpoint при вземането на сериен
номер е 'GetWindowTextА' или 'GetDlgItemTextА'.
Пример:
1. Щраквате върху бтона Start и после избирате 'RUN'
2.
Напишете някаква глупост ('дасдасдасдсада') НО НЕ НАТИСКАЙТЕ "ENTER"
3.Влезте
в SoftIce. ( CTRL-D )
4. Напишете : BPX GetWindowTextA
5. Върнете се
в WIN-a, и натиснете "ENTER"
SoftIce се появява про започването
на API-функцията 'GetWindowTexta', Натиснете F11 за да се върнете
обратно в кода от където се е извикала тази функция.
SEARCHING MEMORY
------------------------
Когато се опитвате да кракнете сеийния номер на някоя прогрма с SoftIce и се изгубите някъде из кода на програмата идажа на помосщ SEARCHING MEMORT.Или казано на кратко можете да разберете къде е останал серийния номер в паметта.
SYNTAX: s <start> l <finish> '<string>'
Например когато
искате да намерите къде точно се намира стринга 'mystring',който сте въвели като
username в някоия прогрма или някуде другаде,просто написвате
s 0 l
ffffffff 'mystring'
BREAKPOINTING ON MEMORY
ACCESS
--------------------------------------------
SYNTAX: BPM
<address> R/W
Това е свързано много с SEARCHING MEMORY .Когато
намерите стринга си ,той не ви върши никаква работа и не можете да продължите
Crack-ването :).Но чрез BREAKPOINTING ON MEMORY ACCESS това става
възможно.
BREAKPOINTING ON MEMORY ACCESS се използва като нормален BREAKPOINT
, само че за четене ,писане или и двете на адреси на паметта.
Например
търсите даден стринг и го намирате на 0157:0009AC2D и после с
BPM
0157:0009AC2D
сте можете да разберете кога точно програмата го използва за
четене или за записване.
Поздравления .Току що се научихте да работите с SoftIce :))