Working with SoftIce

Принадлежности:

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 :))