:: Информация ::

Pulse Reverseing Force

В този урок ще се запознаем с разучаването на p-code.VisualBasic може да компилира по два начина.Единия е 'Native Code ' , а другия 'p-code'.В 'native code' нещатата са както в другите езици за програмиране като например делпфи,c++ и т.н. В смисъл че като има някаква процедура тя отива директно към процесора : push .. push .... call .... cmp .. . je .При p-code не е така.Той по скоро ги интерпретира.И Msvbvm60.dll чете интерпретирания код и си го изпълнява ( както правят скриптовите езици за програмиране).Това трезво погледато забавя много програмата .

 :: Съдържание ::

При работа с 'p-code' , ще ви трябват следните продукти за работа , които можете да изтеглите от тук.
1.Декомпилер за 'p-code'

2.Help за самия 'p-code'

3.но не на последно място по важност VbDebug
4.SmartCheck

5.Малко акъл :)
-----------------------------------------------------------------------------------------------------------------------------------------------------
Ето и нашата цел , която можете да изтеглите от тук.Това crackme  е подарък от Pumqara , на който сме му много благодарни.Пуснете го напишете нещо , кликвайте там 'check' и в крайна сметка ще разберете , че ако кода не е верен нищи не се появява :)Първото коеот направих беше да го отворя с dsm-то за 'p-code'.И ето какво се появи :

-----------------------------------------------------------------------------------------------------------------------------------------------------
Естествено , вие веднага видяхте 'Good work, mate!' :))
Малко над него бие на очи:

40992D: 1c BranchF: 409959

Това идва от кнострукцията на WisualBasic 
If (%p1) Then

.......
End If
От него зависи дали да слезе във ифа или не .Или казано иначе Ако условието е на лице в случея отива на адрес 4009959.
Ако отудем малко по нагоре в кода на програмата ще видим 

409925: Lead0/33 EqVarBool 
В крайна сметка от тука се проверява дали е True или False самия 
If (%p1) Then
а 40992D: 1c BranchF: 409959 само прескача ако това е налице или не .
=> ако от EqVarBool го направим на NeVarBool ще проверява обратното т.е както във нормалния asm код правим je на jne така и тука по същия начин лъжим прогрмата :))

Сега е ред на helpa и търсим в него NeVarBool.


FB40 1<br>ArgStr: <br>SrcStr: <br>Comments: NeVarBool 

==> Трябва да отидем на
409925 и да напишем FB40 :)
Преди това трябва да си направим копие на оригиналното .exe и да се уверим че  ImageBase е 400000 :)
Сега с HexEditora отиваме на  офсет
9925 и записваме FB40 , след което даваме 'save' и с радост да пробваме новото ни .exe .За наше щастие то работи успешно и каквото и да напишем ни пише , че сме се справили добре :)))
-----------------------------------------------------------------------------------------------------------------------------------------------------
Толкова днеска от мене :)Следващия път ми се ще да се занимаваме малко с keyfiles , ама да видим дали ще остане време :)
-----------------------------------------------------------------------------------------------------------------------------------------------------
Дата: 29.12.2003
Автор: shade!prf
Поща: sashoo@abv.bg