В
този урок ще се запознаем с
разучаването на 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 |