Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Пропатчивание P-Code программ

Обсудить статью на форуме

Массу крэкерских инструментов, видеоуроков и статей вы сможете найти на видеокурсе от нашего сайта. Подробнее здесь.

Автор: BiT-H@ck <bit-hack@mail.ru>

Введение.
• Что такое p-code?
o Это один из способов компиляции Visual Basic программ.
• Чем он мешает при изучении программ?
o P-code – псевдокод, который интерпретируется на виртуальной машине, которая находится в dll библиотеке – MSVBVMxx.DLL. Соответственно с наскоку прогу, скомпилированную при помощи p-code дизассемблировать не будешь… А будешь декомпилировать.
• Говорят, что в VB не применяются winapi функции, правда ли это?
o Отчасти, в VB используются переходники на winapi, через MSVBVMxx.DLL.
• Говорят, что VB программы ломаются очень сложно, правда ли это?
o Вот сейчас и посмотрим...

Подготовка.
Для эффективной ломки программ на VB нам потребуются инструменты:
1. P-code декомпиллер
2. Ida Pro 4.7
3. Отладчик
4. Мозги, настроенные на борьбу с Microsoft дерьмом.

На роль p-code декомпиллера подойдут такие тулзы:
VB Decompiler by GPcH
P32Dasm
Эти декомпиллеры самые мощные из всех, что я видел. Отладчик по вкусу, мозги, ну это уж у кого как:)

Исследование DirectX Happy Uninstall.
Данная программа скомпилирована при помощи p-code, но она ещё и упакована yoda protector`ом. Про распаковку почитайте где-нибудь в другом месте, я буду исследовать распакованную программу.

После распаковки обнаруживается, что прога никак не хочет запускаться:( Вероятнее всего из-за распаковки:) Шас поправим. Грузим распакованную прогу в отладчик и видим:

 00401254	682CF44000		PUSH 40F42C
 00401259	E8EEFFFFFF		CALL 0040124C 
 0040125E	0000			ADD BYTE PTR DS:[EAX],AL
 00401260	0000			ADD BYTE PTR DS:[EAX],AL
 00401262	0000			ADD BYTE PTR DS:[EAX],AL
 

Это стандартная EP для прог написанных на VB 5/6. Слегка выше всегда находится такой код:

 004010F0		JMP DWORD PTR DS:[401050]
 004010F6		JMP DWORD PTR DS:[401024]
 004010FC		JMP DWORD PTR DS:[401030]
 

Это переходники на функции из MSVBVM. Теперь смотря на имена функций попробуем догадаться, какие могут использоваться при проверке файла на распакованность. Мне пригляделись:

 004011C2	FF2598104000    JMP DWORD PTR DS:[401098] ; msvbvm60.rtcFileLength
 004011FE	FF25A8104000    JMP DWORD PTR DS:[4010A8] ; msvbvm60.rtcFileLen
 

Ставим бряки на эти строки, отпускаем прогу на волю. Срабатывает бряк по адресу 004011FE. Идём по джампу, выходим из функции и видим такую картину:

 660FD3B9	3BFC			CMP EDI,ESP
 660FD3BB	0F8558570000	JNZ 66102B19
 660FD3C1	50			PUSH EAX
 660FD3C2	33C0			XOR EAX,EAX
 660FD3C4	8A06			MOV AL,BYTE PTR DS:[ESI]
 660FD3C6	46			INC ESI
 

Мы попали в середину цикла интерпритации псевдокода. Трейсим не заходя в подпрограммы до такого места:

 66103578	8A06			MOV AL,BYTE PTR DS:[ESI]
 6610357A	46			INC ESI
 6610357B	FF248530D50F66	JMP DWORD PTR DS:[EAX*4+660FD530]
 

Это место для нас является ключевым. Здесь вычисляется адрес байта, который сейчас будет интерпретироваться. Доходим до адреса 66103578 и смотрим, что же лежит по адресу, находящемуся в esi. У меня esi==0050A7B9, из чего следует, нужный нам прыжок, ответственный за проверку на распакованность находится рядом с адресом 0050A7B9.

Декомпилируем программу с помощью декомпиллера и идём на адрес 0050A7B9:

 0010A7AE	5E	ImpAdCallI4 FileLen()	<-Получили размер файла
 0010A7B3	F5	LitI4: 350000 0x55730
 0010A7B8	DB	GtI4 >
 0010A7B9	32	FFreeStr var_8C var_90 var_94
 0010A7C2	1A	FFree1Ad var_88
 0010A7C5	1C	BranchF  0010A7CA	<-Условный переход
 0010A7C8	FCC8 End End
 

Взглянув в список оп-кодов для p-code я понял, что противоположный BranchF (его оп-код 1C) переход – BranchT (его оп-код 1D). Теперь берём HIEW и патчим.

Всё, проблемы с исправлением распакованной программы закончены, осталось её зарегить. Теперь придётся осмотреть программу на наличие программы каких-либо ограничений, надписей, которые бы гласили о том, что прога незарегана. Я заметил:
1. В заголовке главного окна написано Unregister!
2. Присутствует пункт регистрации

Будем цепляться за надпись в About box`е, гласящую о том, что мы: “The unregister version of…”. Ок, ищем эту мессагу в декомпилере. Нашли –

 loc_509A2B: LitStr "The unregistered version of"
 

Тык, значит есть и хорошая мессага, она выше, ищем:

 loc_5099F1: LitStr "This product is licensed to:"
 

Ищем переход, отвечающий за выбор этих строк, он ещё выше:

 loc_509965: BranchF loc_509A08
 

А ещё выше:

 loc_509944: ImpAdCallI2 proc_505C94
 loc_509949: CVarBoolI2
 loc_50994D: ImpAdLdPr unk_4133B6
 loc_509950: MemLdPr
 loc_509953: LateMemLdVar
 loc_509958: AndVar var_C4
 loc_50995C: CBoolVarNull
 loc_50995E: FFreeVar var_A4 = ""
 

Первая строка меня очень заинтересовала, т.к. она вызывает код, лежащий в диапазоне адресов кода. Идём туда:

 Private Sub n/a_505C94
   loc_505BA0: LitI4 0
   loc_505BA5: PopTmpLdAdStr var_A0
   loc_505BA8: LitStr "Registered Name"
   loc_505BAB: FStStrCopy var_9C
   loc_505BAE: FLdRfVar var_9C
   loc_505BB1: LitStr "Software\SuperFox\"
   loc_505BB4: ImpAdLdI4
   loc_505BB7: ConcatStr
   loc_505BB8: PopTmpLdAdStr
   loc_505BBC: LitI4 -2147483646
   loc_505BC1: PopTmpLdAdStr var_94
   loc_505BC4: ImpAdCallI2 proc_503F68
   loc_505BC9: FStStr var_8C
   loc_505BCC: FFreeStr var_98 = ""
   loc_505BD3: LitI4 0
   loc_505BD8: PopTmpLdAdStr var_A0
   loc_505BDB: LitStr "Registered Code"
   loc_505BDE: FStStrCopy var_9C
   loc_505BE1: FLdRfVar var_9C
   loc_505BE4: LitStr "Software\SuperFox\"
   loc_505BE7: ImpAdLdI4
   loc_505BEA: ConcatStr
   loc_505BEB: PopTmpLdAdStr
   loc_505BEF: LitI4 -2147483646
   loc_505BF4: PopTmpLdAdStr var_94
   loc_505BF7: ImpAdCallI2 proc_503F68
   loc_505BFC: FStStr var_90
   loc_505BFF: FFreeStr var_98 = ""
   loc_505C06: ILdRf var_8C
   loc_505C09: ImpAdCallI2 msvbvm60.dll.rtcTrimBstr
   loc_505C0E: FStStr var_98
   loc_505C11: LitI4 0
   loc_505C16: LitI4 128
   loc_505C1B: FLdZeroAd var_98
   loc_505C1E: CVarStr var_B0
   loc_505C21: FLdRfVar var_C0
   loc_505C24: ImpAdCallFPR4 msvbvm60.dll.rtcStrConvVar2
   loc_505C29: FLdRfVar var_C0
   loc_505C2C: FnLenBVar var_D0
   loc_505C30: LitVarI2 var_E0, 4
   loc_505C35: HardType
   loc_505C36: GeVarBool
   loc_505C38: FFree1Str var_98
   loc_505C3B: FFreeVar var_B0 = ""
   loc_505C42: BranchF loc_505C91
   loc_505C45: FLdRfVar var_8C
   loc_505C48: CDargRef
   loc_505C4C: LitVar_TRUE var_100
   loc_505C4F: PopAdLdVar
   loc_505C50: FLdRfVar var_90
   loc_505C53: CDargRef
   loc_505C57: FMemLdPr
   loc_505C5C: LateMemCallLdVar
   loc_505C64: LitVar_TRUE var_130
   loc_505C67: HardType
   loc_505C68: EqVarBool
   loc_505C6A: FFree1Var var_B0 = ""
   loc_505C6D: BranchT loc_505C91
   loc_505C70: LitVarI2 var_E0, 0
   loc_505C75: PopAdLdVar
   loc_505C76: FMemLdPr
   loc_505C7B: LateMemSt
   loc_505C7F: LitVar_TRUE var_E0
   loc_505C82: PopAdLdVar
   loc_505C83: FMemLdPr
   loc_505C88: LateMemSt
   loc_505C8C: LitI2_Byte 255
   loc_505C8E: FStI2 var_86
   loc_505C91: ExitProcI2
 End Sub
 

Из всего этого кода надо найти один переход, который отвечает за то, что вернёт функция true или false. Мне пришлось вспоминать процесс взлома обычных прог, в которых за возвращаемый результат отвечает переход, который находится ближе к концу функции проверки рег. кода. Ок, меняем последний переход - loc_505C6D: BranchT loc_505C91 на обратный, запускаем прогу и… Можно писать in-line/ In-line для Yoda Protector пишется не очень сложно, он 4-х слойный, CRC исправляется за 3 минуты, в следствии того, что юзается одна и тажа функция. Вощм, флаг в руки и барабан на шею/

Выводы.
Проги на P-code ломаются не намного сложнее, чем обычные, главное понять смысл и иметь список оп-кодов:

 00	2	LargeBos	
 01	5	InvalidExcode	
 02	2	SelectCaseByte	
 03	1	DOC
 04	3	FLdRfVar	ul	|                 ’ignore used to load a copied var
 05	3	ImpAdLdRf	a2	
 06	3	MemLdRfVar	
 07	5	FMemLdRf	
 08	3	FLdPr	l	|                     |ignore this loads a memory pointer for previous item?
 09	5	ImpAdCallHresult                  |stores memory items address in variable next function
 0A	5	ImpAdCallFPR4	h%h%              |uses address in variable
 0B	5	ImpAdCallI2	
 0C	5	ImpAdCallCy	
 0D	5	VCallHresult	vw	%p1	
 0E	3	VCallFPR8	
 0F	3	VCallAd	uc	|                     controlindex= (arg-760)/4
 10	5	ThisVCallHresult	
 11	3	ThisVCall	
 12	3	ThisVCallAd	
 13	1	ExitProcHresult	}	}	
 14	1	ExitProc	}		
 15	1	ExitProcI2			
 16	1	ExitProcR4			
 17	1	ExitProcR8			
 18	1	ExitProcCy			
 19	3	FStAdFunc	l	|                 ’ always followed by FldPr ; i cant find a good not to ignore it	
 1A	3	FFree1Ad	l	|	
 1B	3	LitStr	uaz	|	
 1C	3	BranchF	>p	If (%p1) Then||End If	
 1D	3	BranchT	>p	
 1E	3	Branch	>up	Goto line%p1	
 1F	3	CRec2Ansi	
 20	3	CRec2Uni	
 21	1	FLdPrThis	uto	|	
 22	3	ImpAdLdPr	
 23	3	FStStrNoPop	
 24	3	NewIfNullPr	h%	
 25	1	PopAdLdVar		|                 ’ignore comes after an optional param
 26	3	AryDescTemp	
 27	3	LitVar_Missing	l	<	
 28	5	LitVarI2	la2                   ’have something on this just confused
 29	-1	FFreeAd	L	|		
 2A	1	ConcatStr		<%p2 & %p1	
 2B	3	PopTmpLdAd2	
 2C	5	LateIdSt	
 2D	3	AryUnlock	
 2E	3	AryLock	
 2F	3	FFree1Str	l	|	
 30	3	PopTmpLdAd8	
 31	3	FStStr	ums	%p1 = %p2	
 32	-1	FFreeStr	L	|	
 33	3	LdFixedStr	
 34	1	CStr2Ansi			
 35	3	FFree1Var	l	|	
 36	-1	FFreeVar	L	|	
 37	1	PopFPR4			
 38	3	CopyBytes	
 39	1	PopFPR8			
 3A	5	LitVarStr	luaz	|               ’have something on this just confused
 3B	1	Ary1StStrCopy			
 3C	1	SetLastSystemError			
 3D	3	CastAd	
 3E	3	FLdZeroAd	l	|	
 3F	3	CVarCy	
 40	1	Ary1LdRf			
 41	1	Ary1LdPr			
 42	1	CR4Var			
 43	3	FStStrCopy	ul	%p1=%p2	
 44	3	CVarI2	
 45	1	Error			
 46	3	CVarStr	l		
 47	3	StFixedStr	
 48	3	ILdPr	
 49	1	PopAdLd4			
 4A	1	FnLenStr			
 4B	3	OnErrorGoto							’questions on this one too
 4C	1	FnLBound			
 4D	5	CVarRef	
 4E	3	FStVarCopyObj	ul	%p1 = %p2				ignore used to copy an object before passing
 4F	3	MidStr	w	Mid(%p4,%p3,%p2) = %p1	
 50	1	CI4Str			
 51	3E	DOC
 52	1	Ary1StVar			
 53	1	CBoolCy			
 54	5	FMemStStrCopy	
 55	1	CI2Var			
 56	3	NewIfNullAd	h%
 57	5	LateMemLdVar	
 58	3	MemLdPr	
 59	3	PopTmpLdAdStr	
 5A	1	Erase			
 5B	3	FStAdFuncNoPop	l		
 5C	3	BranchFVar	
 5D	1	HardType			
 5E	000B	DOC
 5F	5	FMemLdPr	
 60	1	CStrVarTmp			
 61	7	LateIdLdVar	
 62	3	IStDarg	
 63	3	LitVar_TRUE	
 64	5	NextI2	ln	Next %p1	
 65	5	NextStepI2	ln	Next %p1	
 66	5	NextI4	ln	Next %p1
 67	5	NextStepI4	ln	Next %p1
 68	5	NextStepR4	ln	Next %p1
 69	5	NextStepR8	ln	Next %p1
 6A	5	NextStepCy	ln	Next %p1
 6B	3	FLdI2	ul	|	
 6C	3	ILdRf	ul	|	 ’was "ul"
 6D	3	FLdR8	
 6E	3	FLdFPR4	
 6F	3	FLdFPR8	ul
 70	3	FStI2	um%	%p1 = %p2				push Variable Integer to stack
 71	3	FStR4	um&	%p1 = %p2	
 72	3	FStR8	um$	%p1 = %p2	
 73	3	FStFPR4	um!	%p1 = %p2	
 74	3	FStFPR8	um#	%p1 = %p2	
 75	3	ImpAdLdI2	
 76	3	ImpAdLdI4	
 77	3	ImpAdLdCy	
 78	3	ImpAdLdFPR4	
 79	3	ImpAdLdFPR8	
 7A	3	ImpAdStI2	
 7B	3	ImpAdStR4	
 7C	3	ImpAdStCy	
 7D	3	ImpAdStFPR4	
 7E	3	ImpAdStFPR8	
 7F	3	ILdI2	ul	|	
 80	3	ILdI4	ul	|	
 81	3	ILdR8	
 82	3	ILdFPR4	ul	|	
 83	3	ILdFPR8	ul	|	
 84	3	IStI2	
 85	3	IStI4	
 86	3	IStR8	
 87	3	IStFPR4	
 88	3	IStFPR8	
 89	3	MemLdI2	
 8A	3	MemLdStr	ul		
 8B	3	MemLdR8	
 8C	3	MemLdFPR4	
 8D	3	MemLdFPR8	
 8E	3	MemStI2	
 8F	3	MemStI4	
 90	3	MemStR8	
 91	3	MemStFPR4	
 92	3	MemStFPR8	
 93	5	FMemLdI2	
 94	5	FMemLdR4	
 95	5	FMemLdCy	
 96	5	FMemLdFPR4	
 97	5	FMemLdFPR8	
 98	5	FMemStI2	
 99	5	FMemStI4	
 9A	5	FMemStR8	
 9B	5	FMemStFPR4	
 9C	5	FMemStFPR8	
 9D	1	Ary1LdI2		<%p1(%p2)	
 9E	1	Ary1LdI4		<%p1(%p2)	
 9F	1	Ary1LdCy		<%p1(%p2)	
 A0	1	Ary1LdFPR4		<%p1(%p2)	
 A1	1	Ary1LdFPR8		<%p1(%p2)	
 A2	1	Ary1StI2		%p1(%p2) = %p3	
 A3	1	Ary1StI4		%p1(%p2) = %p3	
 A4	1	Ary1StCy		%p1(%p2) = %p3	
 A5	1	Ary1StFPR4		%p1(%p2) = %p3	
 A6	1	Ary1StFPR8		%p1(%p2) = %p3	
 A7	3	AryLdPr	
 A8	3	AryLdRf	
 A9	1	AddI2		<(%p2 +	%p1)	
 AA	1	AddI4		<(%p2 +	%p1)	
 AB	1	AddR8		<(%p2 +	%p1)	
 AC	1	AddCy		<(%p2 +	%p1)
 AD	1	SubI2		<(%p2 -	%p1)	
 AE	1	SubI4		<(%p2 -	%p1)	
 AF	1	SubR4		<(%p2 -	%p1)	
 B0	1	SubCy		<(%p2 -	%p1)	
 B1	1	MulI2		<(%p2 *	%p1)	
 B2	1	MulI4		<(%p2 *	%p1)
 B3	1	MulR8		<(%p2 *	%p1)	
 B4	1	MulCy		<(%p2 *	%p1)	
 B5	1	MulCyI2		<(%p2 *	%p1)	
 B6	1	DivR8		<(%p2 /	%p1)	
 B7	1	UMiI2			
 B8	1	UMiI4			
 B9	1	UMiR8			
 BA	1	UMiCy			
 BB	1	FnAbsI2			
 BC	1	FnAbsI4			
 BD	1	FnAbsR4			
 BE	1	FnAbsCy			
 BF	1	IDvI2			
 C0	1	IDvI4			
 C1	1	ModI2			
 C2	1	ModI4			
 C3	1	NotI4		<Not(%p1)					’needs to be pushed to stack
 C4	1	AndI4		<(%p2 And %p1)	
 C5	1	OrI4		<(%p2 Or %p1)	
 C6	1	EqI2		<(%p2 =	%p1)	
 C7	1	EqI4		<(%p2 =	%p1)	
 C8	1	EqR4		<(%p2 =	%p1)	
 C9	1	EqCy		<(%p2 =	%p1)	
 CA	1	EqCyR8		<(%p2 =	%p1)	
 CB	1	NeI2		<(%p2 <> %p1)	
 CC	1	NeI4		<(%p2 <> %p1)	
 CD	1	NeR8		<(%p2 <> %p1)	
 CE	1	NeCy		<(%p2 <> %p1)	
 CF	1	NeCyR8		<(%p2 <> %p1)	
 D0	1	LtI2		<(%p2 <	%p1)	
 D1	1	LtI4		<(%p2 <	%p1)	
 D2	1	LtR8		<(%p2 <	%p1)	
 D3	1	LtCy		<(%p2 <	%p1)	
 D4	1	LtCyR8		<(%p2 <	%p1)	
 D5	1	LeI2		<(%p2 <= %p1)	
 D6	1	LeI4		<(%p2 <= %p1)	
 D7	1	LeR8		<(%p2 <= %p1)	
 D8	1	LeCy		<(%p2 <= %p1)	
 D9	1	LeCyR8		<(%p2 <= %p1)	
 DA	1	GtI2		<(%p2 >	%p1)	
 DB	1	GtI4		<(%p2 >	%p1)	
 DC	1	GtR4		<(%p2 >	%p1)	
 DD	1	GtCy		<(%p2 >	%p1)	
 DE	1	GtCyR8		<(%p2 >	%p1)	
 DF	1	GeI2		<(%p2 >= %p1)	
 E0	1	GeI4		<(%p2 >= %p1)	
 E1	1	GeR8		<(%p2 >= %p1)	
 E2	1	GeCy		<(%p2 >= %p1)	
 E3	1	GeCyR8		<(%p2 >= %p1)	
 E4	1	CI2I4		<CInt(%p1)	
 E5	1	CI2R8		<CInt(%p1)	
 E6	1	CI2Cy		<CInt(%p1)	
 E7	1	CI4UI1		<CLng(%p1)	
 E8	1	CI4R8		<CLng(%p1)	
 E9	1	CI4Cy		<CLng(%p1)	
 EA	1	CR4R4			
 EB	1	CR8I2		<CSng(%p1)	
 EC	1	CR8I4		<CSng(%p1)	
 ED	1	CR8R8		<CSng(%p1)	
 EE	1	CR8Cy		<CSng(%p1)	
 EF	1	CCyI2		<CCur(%p1)	
 F0	1	CCyI4		<CCur(%p1)	
 F1	1	CCyR4		<CCur(%p1)	
 F2	1	CDateR8			
 F3	3	LitI2	u%	
 F4	2	LitI2_Byte	u°		
 F5	5	LitI4	u&		
 F6	9	LitCy	
 F7	5	LitCy4	
 F8	3	LitI2FP	
 F9	5	LitR4FP	
 FA	9	LitDate	u!
 FB	1	Lead0			
 FC	1	Lead1			
 FD	1	Lead2			
 FE	1	Lead3			
 FF	1	Lead4			
 FB00	0001	DOC
 FB01	1	ImpUI1			
 FB02	1	ImpI4			
 FB03	FB02	DOC
 FB04	FB00	DOC
 FB05	FB00	DOC
 FB06	FB00	DOC
 FB07	3	ImpVar	
 FB08	FB00	DOC
 FB09	1	EqvUI1			
 FB0A	1	EqvI4			
 FB0B	FB0A	DOC
 FB0C	FB00	DOC
 FB0D	FB00	DOC
 FB0E	FB00	DOC
 FB0F	3	EqvVar	
 FB10	FB00	DOC
 FB11	1	XorI4			
 FB12	FB11	DOC
 FB13	FB11	DOC
 FB14	FB00	DOC
 FB15	FB00	DOC
 FB16	FB00	DOC
 FB17	3	XorVar	
 FB18	FB00	DOC
 FB19	1	OrI2			
 FB1A	FB19	DOC
 FB1B	FB19	DOC
 FB1C	FB00	DOC
 FB1D	FB00	DOC
 FB1E	FB00	DOC
 FB1F	3	OrVar	
 FB20	FB00	DOC
 FB21	1	AndUI1			
 FB22	FB21	DOC
 FB23	FB21	DOC
 FB24	FB00	DOC
 FB25	FB00	DOC
 FB26	FB00	DOC
 FB27	3	AndVar	
 FB28	FB00	DOC
 FB29	1	EqI2			
 FB2A	1	EqI2			
 FB2B	1	EqI4			
 FB2C	1	EqR8			
 FB2D	1	EqR8			
 FB2E	1	EqCy			
 FB2F	3	EqVar	
 FB30	1	EqStr		<(%p2 =	%p1)	
 FB31	3	EqTextVar	
 FB32	1	EqTextStr			
 FB33	1	EqVarBool			
 FB34	1	EqTextVarBool			
 FB35	1	EqCyR8			
 FB36	1	NeUI1			
 FB37	1	NeUI1			
 FB38	00CC	DOC			
 FB39	1	NeR4			
 FB3A	1	NeR4			
 FB3B	1	NeCy			
 FB3C	3	NeVar	
 FB3D	1	NeStr		<(%p2 <> %p1)	
 FB3E	3	NeTextVar	
 FB3F	1	NeTextStr			
 FB40	1	NeVarBool			
 FB41	1	NeTextVarBool			
 FB42	1	NeCyR8			
 FB43	1	LeUI1			
 FB44	1	LeI2			
 FB45	00D6	DOC			
 FB46	1	LeR4			
 FB47	1	LeR4			
 FB48	1	LeCy			
 FB49	3	LeVar	
 FB4A	1	LeStr			
 FB4B	3	LeTextVar	
 FB4C	1	LeTextStr			
 FB4D	1	LeVarBool			
 FB4E	1	LeTextVarBool			
 FB4F	1	LeCyR8			
 FB50	1	GeUI1			
 FB51	1	GeI2			
 FB52	00E0	DOC			
 FB53	1	GeR4			
 FB54	1	GeR4			
 FB55	1	GeCy			
 FB56	3	GeVar	
 FB57	1	GeStr			
 FB58	3	GeTextVar	
 FB59	1	GeTextStr			
 FB5A	1	GeVarBool			
 FB5B	1	GeTextVarBool			
 FB5C	1	GeCyR8			
 FB5D	1	LtUI1			
 FB5E	1	LtI2			
 FB5F	1	LtI4			
 FB60	1	LtR4			
 FB61	1	LtR4			
 FB62	1	LtCy			
 FB63	3	LtVar	
 FB64	1	LtStr			
 FB65	3	LtTextVar	
 FB66	1	LtTextStr			
 FB67	1	LtVarBool			
 FB68	1	LtTextVarBool			
 FB69	1	LtCyR8			
 FB6A	1	GtUI1			
 FB6B	1	GtI2			
 FB6C	00DB	DOC			
 FB6D	1	GtR4			
 FB6E	1	GtR4			
 FB6F	1	GtCy			
 FB70	3	GtVar	
 FB71	1	GtStr			
 FB72	3	GtTextVar	
 FB73	1	GtTextStr			
 FB74	1	GtVarBool			
 FB75	1	GtTextVarBool			
 FB76	1	GtCyR8			
 FB77	FB00	DOC
 FB78	FB00	DOC
 FB79	FB00	DOC
 FB7A	FB00	DOC
 FB7B	FB00	DOC
 FB7C	FB00	DOC
 FB7D	3	LikeVar	
 FB7E	1	LikeStr			
 FB7F	3	LikeTextVar	
 FB80	1	LikeTextStr			
 FB81	1	LikeVarBool			
 FB82	1	LikeTextVarBool			
 FB83	FB00	DOC
 FB84	1	BetweenUI1			
 FB85	1	BetweenI2			
 FB86	1	BetweenI4			
 FB87	1	BetweenR4			
 FB88	1	BetweenR4			
 FB89	1	BetweenCy			
 FB8A	1	BetweenVar			
 FB8B	1	BetweenStr			
 FB8C	1	BetweenTextVar			
 FB8D	1	BetweenTextStr			
 FB8E	1	AddUI1			
 FB8F	1	AddI2			
 FB90	00AA	DOC			
 FB91	1	AddR4			
 FB92	1	AddR4			
 FB93	1	AddCy			
 FB94	3	AddVar	
 FB95	FB00	DOC
 FB96	1	SubUI1			
 FB97	1	SubI2			
 FB98	1	SubI4			
 FB99	1	SubR4			
 FB9A	1	SubR4			
 FB9B	1	SubCy			
 FB9C	3	SubVar	
 FB9D	FB00	DOC
 FB9E	1	ModUI1			
 FB9F	1	ModI2			
 FBA0	1	ModI4			
 FBA1	FB00	DOC
 FBA2	FB00	DOC
 FBA3	FB00	DOC
 FBA4	3	ModVar	
 FBA5	FB00	DOC
 FBA6	1	IDvUI1			
 FBA7	1	IDvI2			
 FBA8	1	IDvI4			
 FBA9	FB00	DOC
 FBAA	FB00	DOC
 FBAB	FB00	DOC
 FBAC	3	IDvVar	
 FBAD	0	Unknow	
 FBAE	1	MulUI1			
 FBAF	1	MulI2			
 FBB0	1	MulI4			
 FBB1	1	MulR4			
 FBB2	1	MulR4			
 FBB3	1	MulCy			
 FBB4	3	MulVar	
 FBB5	FB00	DOC
 FBB6	FB00	DOC
 FBB7	FB00	DOC
 FBB8	FB00	DOC
 FBB9	00B6	DOC			
 FBBA	00B6	DOC			
 FBBB	FB00	DOC
 FBBC	3	DivVar	
 FBBD	FB00	DOC
 FBBE	1	NotUI1			
 FBBF	1	NotI4			
 FBC0	1	NotI4			
 FBC1	FB00	DOC
 FBC2	FB00	DOC
 FBC3	FB00	DOC
 FBC4	3	NotVar	
 FBC5	FB00	DOC
 FBC6	FB00	DOC
 FBC7	1	UMiI2			
 FBC8	1	UMiI2			
 FBC9	1	UMiR4			
 FBCA	1	UMiR4			
 FBCB	1	UMiCy			
 FBCC	3	UMiVar	
 FBCD	FB00	DOC
 FBCE	3	PwrVar	
 FBCF	1	PwrR8R8			
 FBD0	1	PwrR8I2			
 FBD1	1	MulCyI2			
 FBD2	1	Is			
 FBD3	FB00	DOC
 FBD4	1	FnAbsI2			
 FBD5	1	FnAbsI4			
 FBD6	1	FnAbsR4			
 FBD7	1	FnAbsR4			
 FBD8	1	FnAbsCy			
 FBD9	3	FnAbsVar	
 FBDA	FB00	DOC
 FBDB	FB00	DOC
 FBDC	FB00	DOC
 FBDD	FB00	DOC
 FBDE	1	FnFixR8			
 FBDF	1	FnFixR8			
 FBE0	1	FnFixCy			
 FBE1	3	FnFixVar	
 FBE2	FB00	DOC
 FBE3	FB00	DOC
 FBE4	FB00	DOC
 FBE5	FB00	DOC
 FBE6	1	FnIntR8			
 FBE7	1	FnIntR8			
 FBE8	1	FnIntCy			
 FBE9	3	FnIntVar	
 FBEA	FB00	DOC
 FBEB	3	FnLenVar	
 FBEC	1	FnLenStr			
 FBED	3	FnLenBVar	
 FBEE	1	FnLenBStr			
 FBEF	3	ConcatVar	l		
 FBF0	2A	DOC
 FBF1	FB00	DOC
 FBF2	1	FnSgnUI1			
 FBF3	1	FnSgnUI1			
 FBF4	1	FnSgnI4			
 FBF5	1	FnSgnR8			
 FBF6	1	FnSgnR4			
 FBF7	1	FnSgnCy			
 FBF8	FB00	DOC
 FBF9	FB00	DOC
 FBFA	1	SeekFile			
 FBFB	1	NameFile			
 FBFC	1	CStrI2			
 FBFD	1	CStrUI1			
 FBFE	1	CStrI4			
 FBFF	1	CStrR4			
 FC00	1	CStrR8			
 FC01	1	CStrCy			
 FC02	1	CStrVar			
 FC03	FB00	DOC
 FC04	00EF	DOC			
 FC05	00EF	DOC			
 FC06	1	CCyI4			
 FC07	1	CCyR4			
 FC08	1	CCyR4			
 FC09	FB00	DOC
 FC0A	1	CCyVar			
 FC0B	1	CCyStr			
 FC0C	FB00	DOC
 FC0D	1	CUI1I2		<Cbyte(%p1)		
 FC0E	1	CUI1I4		<Cbyte(%p1)			
 FC0F	1	CUI1R4		<Cbyte(%p1)			
 FC10	1	CUI1R4		<Cbyte(%p1)			
 FC11	1	CUI1Cy		<Cbyte(%p1)			
 FC12	1	CUI1Var		<Cbyte(%p1)			
 FC13	1	CUI1Str		<Cbyte(%p1)			
 FC14	1	CI2UI1			
 FC15	FB00	DOC
 FC16	1	CI2I4			
 FC17	1	CI2R8			
 FC18	1	CI2R8			
 FC19	1	CI2Cy			
 FC1A	1	CI2Var			
 FC1B	1	CI2Str			
 FC1C	1	CI4UI1			
 FC1D	1	CI4UI1			
 FC1E	FB00	DOC
 FC1F	1	CI4R8			
 FC20	1	CI4R8			
 FC21	1	CI4Cy			
 FC22	1	CI4Var			
 FC23	1	CI4Str			
 FC24	1	FnCSngI2			
 FC25	1	FnCSngI2			
 FC26	1	CR4I4			
 FC27	1	CR4R8			
 FC28	1	CR4R8			
 FC29	1	CR8Cy			
 FC2A	1	CR8Var			
 FC2B	1	CR4Str			
 FC2C	1	FnCSngI2			
 FC2D	1	FnCSngI2			
 FC2E	1	CR4I4			
 FC2F	1	CR8R4			
 FC30	1	CR8R4			
 FC31	1	CR8Cy			
 FC32	1	CR8Var			
 FC33	1	CR8Str			
 FC34	1	CAdVar			
 FC35	1	CRefVarAry			
 FC36	FB00	DOC
 FC37	FB00	DOC
 FC38	1	CUI1Bool			
 FC39	1	FnCDblCy			
 FC3A	1	FnCDblR8			
 FC3B	1	FnCDblR8			
 FC3C	1	FnCSngI2			
 FC3D	1	FnCSngI2			
 FC3E	1	FnCSngI4			
 FC3F	1	CSng			
 FC40	1	CSng			
 FC41	1	FnCSngCy			
 FC42	1	FnCSngVar			
 FC43	1	FnCSngStr			
 FC44	1	FnCByteVar			
 FC45	1	FnCIntVar			
 FC46	1	FnCLngVar			
 FC47	1	CDateR8			
 FC48	1	FnCDblVar			
 FC49	1	FnCCurVar			
 FC4A	FB00	DOC
 FC4B	1	FnCStrVar			
 FC4C	FB00	DOC
 FC4D	1	FnCBoolVar			
 FC4E	1	FnCDateVar			
 FC4F	1	FnCDateVar			
 FC50	1	CBoolUI1			
 FC51	1	CBoolUI1			
 FC52	1	CBoolI4			
 FC53	1	CBoolR4			
 FC54	1	CBoolR4			
 FC55	1	CBoolCy			
 FC56	1	CBoolVar			
 FC57	1	CBoolStr			
 FC58	1	CStr2Uni			
 FC59	1	CStrAry2Uni			
 FC5A	1	CStr2Ansi			
 FC5B	1	CStrAry2Ansi			
 FC5C	1	PopAdLd4			
 FC5D	3	CRecAnsi2Uni	
 FC5E	3	CRecUni2Ansi	
 FC5F	3	CStr2Vec	
 FC60	3	CVar2Vec	
 FC61	5	CVec2Var	
 FC62	1	GetLastError			
 FC63	1	LitNothing			
 FC64	3	LitVar_NULL	
 FC65	3	LitVar_TRUE	
 FC66	3	LitVar_FALSE	
 FC67	3	LitVar_Empty	
 FC68	27	DOC
 FC69	0D	DOC
 FC6A	5	ThisVCallHresult	
 FC6B	FB00	DOC
 FC6C	FB00	DOC
 FC6D	0013	DOC			
 FC6E	FB00	DOC
 FC6F	3	CheckTypeVar	
 FC70	FB00	DOC
 FC71	1	CUnkVar			
 FC72	3	CVarUnk	
 FC73	1	LdPrUnkVar			
 FC74	9	FLdLateIdUnkVar	
 FC75	1	GetRec3			
 FC76	1	GetRec4			
 FC77	1	PutRec3			
 FC78	1	PutRec4			
 FC79	-1	GetRecOwner3	
 FC7A	-1	GetRecOwner4	
 FC7B	-1	PutRecOwner3	
 FC7C	-1	PutRecOwner4	
 FC7D	1	Input			
 FC7E	1	InputDone			
 FC7F	1	InputItemUI1			
 FC80	1	InputItemI2			
 FC81	1	InputItemI4			
 FC82	1	InputItemR4			
 FC83	1	InputItemR8			
 FC84	1	InputItemCy			
 FC85	1	InputItemVar			
 FC86	1	InputItemStr			
 FC87	1	InputItemBool			
 FC88	1	InputItemDate			
 FC89	1	PopFPR4			
 FC8A	1	PopFPR8			
 FC8B	1	PopAd			
 FC8C	25	DOC
 FC8D	3	AryLdPr	
 FC8E	3	AryLdRf	
 FC8F	5	ParmAry1St	
 FC90	1	Ary1LdUI1			
 FC91	1	Ary1LdI2			
 FC92	009E	DOC			
 FC93	009E	DOC			
 FC94	1	Ary1LdR8			
 FC95	1	Ary1LdR8			
 FC96	1	Ary1LdRfVar			
 FC97	009E	DOC			
 FC98	009E	DOC			
 FC99	1	Ary1LdFPR4			
 FC9A	1	Ary1LdFPR8			
 FC9B	1	Ary1LdPr			
 FC9C	1	Ary1LdRf			
 FC9D	1	Ary1LdVar			
 FC9E	FB00	DOC
 FC9F	FB00	DOC
 FCA0	1	Ary1StUI1			
 FCA1	1	Ary1StI2			
 FCA2	1	Ary1StR4			
 FCA3	1	Ary1StR4			
 FCA4	1	Ary1StCy			
 FCA5	1	Ary1StCy			
 FCA6	1	Ary1StVar			
 FCA7	1	Ary1StStr			
 FCA8	1	Ary1StAd			
 FCA9	1	Ary1StFPR4			
 FCAA	1	Ary1StFPR8			
 FCAB	1	Ary1StVarAd			
 FCAC	1	Ary1StVarAdFunc			
 FCAD	1	Ary1StVarUnk			
 FCAE	1	Ary1StVarUnkFunc			
 FCAF	1	Ary1StAdFunc			
 FCB0	1	Ary1StVarCopy			
 FCB1	1	Ary1StStrCopy			
 FCB2	3	Ary1LdRfVarg	
 FCB3	1	Ary1LdVarg			
 FCB4	1	Ary1LdRfVargParam			
 FCB5	1	Ary1StVarg			
 FCB6	1	Ary1StVargCopy			
 FCB7	1	Ary1StVargAd			
 FCB8	1	Ary1StVargAdFunc			
 FCB9	1	Ary1StVargUnk			
 FCBA	1	Ary1StVargUnkFunc			
 FCBB	1	MidVar			
 FCBC	3	MidBStr	
 FCBD	1	MidBVar			
 FCBE	3	MidBStrB	
 FCBF	1	LineInputVar			
 FCC0	1	LineInputStr			
 FCC1	1	Error			
 FCC2	1	Stop			
 FCC3	1	Erase			
 FCC4	2	LargeBos	
 FCC5	FB00	DOC
 FCC6	FB00	DOC
 FCC7	FB00	DOC
 FCC8	1	End			
 FCC9	1	Return			
 FCCA	1	FnLBound			
 FCCB	1	FnUBound			
 FCCC	1	ExitProcUI1			
 FCCD	1	ExitProcI2			
 FCCE	1	ExitProcStr			
 FCCF	1	ExitProcR4			
 FCD0	1	ExitProcR8			
 FCD1	1	ExitProcCy			
 FCD2	FB00	DOC
 FCD3	1	ExitProcStr			
 FCD4	1	ExitProcStr			
 FCD5	1	ExitProcStr			
 FCD6	FB00	DOC
 FCD7	FB00	DOC
 FCD8	FB00	DOC
 FCD9	FB00	DOC
 FCDA	FB00	DOC
 FCDB	FB00	DOC
 FCDC	FB00	DOC
 FCDD	FB00	DOC
 FCDE	FB00	DOC
 FCDF	FB00	DOC
 FCE0	3	FLdUI1	
 FCE1	3	FLdI2	
 FCE2	3	FLdR4	
 FCE3	3	FLdR4	
 FCE4	3	FLdR8	
 FCE5	3	FLdR8	
 FCE6	0004	DOC
 FCE7	3	FLdR4	
 FCE8	3	FLdR4	
 FCE9	3	FLdFPR4	
 FCEA	006F	DOC
 FCEB	08	DOC
 FCEC	04	DOC
 FCED	3	FLdVar	
 FCEE	FB00	DOC
 FCEF	FB00	DOC
 FCF0	3	FStUI1	um°	%p1 = %p2
 FCF1	0070	DOC	
 FCF2	71	DOC
 FCF3	71	DOC
 FCF4	0072	DOC
 FCF5	0072	DOC	
 FCF6	3	FStVar	
 FCF7	31	DOC
 FCF8	3	FStAd	
 FCF9	0073	DOC
 FCFA	0074	DOC	
 FCFB	3	FStVarAd	
 FCFC	3	FStVarAdFunc	
 FCFD	3	FStVarUnk	
 FCFE	3	FStVarUnkFunc	
 FCFF	19	DOC
 FD00	3	FStVarCopy	
 FD01	43	DOC
 FD02	1	HardType			
 FD03	1E	DOC
 FD04	1C	DOC
 FD05	3	BranchFVar	>up
 FD06	3	BranchFVarFree	
 FD07	1D	DOC
 FD08	3	BranchTVar	
 FD09	3	BranchTVarFree	
 FD0A	3	Gosub	
 FD0B	3	OnErrorGoto	
 FD0C	3	Resume	
 FD0D	3	AryLock	
 FD0E	3	AryUnlock	
 FD0F	3	AryDescTemp	
 FD10	3	ILdUI1	
 FD11	7F	DOC
 FD12	3	ILdAd	
 FD13	3	ILdAd	
 FD14	3	ILdR8	
 FD15	3	ILdR8	
 FD16	5	ILdRfDarg	
 FD17	3	ILdAd	
 FD18	3	ILdAd	
 FD19	3	ILdFPR4	
 FD1A	3	ILdFPR8	
 FD1B	3	ILdPr	
 FD1C	3	FLdR4	
 FD1D	3	ILdDarg	
 FD1E	FB00	DOC
 FD1F	FB00	DOC
 FD20	3	IStUI1	
 FD21	3	IStI2	
 FD22	3	IStI4	
 FD23	3	IStI4	
 FD24	3	IStR8	
 FD25	3	IStR8	
 FD26	3	IStDarg	
 FD27	3	IStStr	
 FD28	3	IStAd	
 FD29	3	IStFPR4	
 FD2A	3	IStFPR8	
 FD2B	3	IStDargAd	
 FD2C	3	IStDargAdFunc	
 FD2D	3	IStDargUnk	
 FD2E	3	IStDargUnkFunc	
 FD2F	3	IStAdFunc	
 FD30	3	IStDargCopy	
 FD31	3	IStStrCopy	
 FD32	1	PrintChan			
 FD33	1	WriteChan			
 FD34	1	PrintComma			
 FD35	1	PrintEos			
 FD36	1	PrintNL			
 FD37	1	PrintItemComma			
 FD38	1	PrintItemSemi			
 FD39	1	PrintItemNL			
 FD3A	3	PrintObj	
 FD3B	1	PrintSpc			
 FD3C	1	PrintTab			
 FD3D	1	Close			
 FD3E	1	CloseAll			
 FD3F	3E	DOC
 FD40	3	IWMemLdUI1	
 FD41	3	IWMemLdI2	
 FD42	3	IWMemLdI4	
 FD43	3	IWMemLdI4	
 FD44	3	IWMemLdCy	
 FD45	3	IWMemLdCy	
 FD46	5	IWMemLdRfDarg	
 FD47	3	IWMemLdI4	
 FD48	3	IWMemLdI4	
 FD49	3	IWMemLdFPR4	
 FD4A	3	IWMemLdFPR8	
 FD4B	3	IWMemLdPr	
 FD4C	3	IWMemLdRf	
 FD4D	3	IWMemLdDarg	
 FD4E	FB00	DOC
 FD4F	FB00	DOC
 FD50	3	IWMemStUI1	
 FD51	3	IWMemStI2	
 FD52	3	IWMemStR4	
 FD53	3	IWMemStR4	
 FD54	3	IWMemStCy	
 FD55	3	IWMemStCy	
 FD56	3	IWMemStDarg	
 FD57	3	IWMemStStr	
 FD58	3	IWMemStAd	
 FD59	3	IWMemStFPR4	
 FD5A	3	IWMemStFPR8	
 FD5B	3	IWMemStDargAd	
 FD5C	3	IWMemStDargAdFunc	
 FD5D	3	IWMemStDargUnk	
 FD5E	3	IWMemStDargUnkFunc	
 FD5F	3	IWMemStAdFunc	
 FD60	3	IWMemStDargCopy	
 FD61	3	IWMemStStrCopy	
 FD62	3E	DOC
 FD63	3	FStVarNoPop	
 FD64	3	FStStrNoPop	
 FD65	FB00	DOC
 FD66	FB00	DOC
 FD67	3	CVarUI1	l		
 FD68	3	CVarI2	l		
 FD69	3	CVarI4	l		
 FD6A	3	CVarR4	l		
 FD6B	3	CVarR8	l		
 FD6C	3	CVarCy	l		
 FD6D	FB00	DOC
 FD6E	3	CVarStr	h%
 FD6F	3	CVarAd	h%
 FD70	3	MemLdUI1h%	
 FD71	3	MemLdI2	h%
 FD72	3	MemLdR4	h%
 FD73	3	MemLdR4	h%
 FD74	3	MemLdR8	h%
 FD75	3	MemLdR8	h%
 FD76	3	MemLdRfVar	h%
 FD77	3	MemLdR4	
 FD78	3	MemLdR4	
 FD79	3	MemLdFPR4	
 FD7A	3	MemLdFPR8	
 FD7B	3	MemLdPr	
 FD7C	3	MemLdRfVar	
 FD7D	3	MemLdVar	
 FD7E	FB00	DOC
 FD7F	FB00	DOC
 FD80	3	MemStUI1	
 FD81	3	MemStI2	
 FD82	3	MemStR4	
 FD83	3	MemStR4	
 FD84	3	MemStCy	
 FD85	3	MemStCy	
 FD86	3	MemStVar	
 FD87	3	MemStStr	
 FD88	3	MemStAd	
 FD89	3	MemStFPR4	
 FD8A	3	MemStFPR8	
 FD8B	3	MemStVarAd	
 FD8C	3	MemStVarAdFunc	
 FD8D	3	MemStVarUnk	
 FD8E	3	MemStVarUnkFunc	
 FD8F	3	MemStAdFunc	
 FD90	3	MemStVarCopy	
 FD91	3	MemStStrCopy	ul	%p1 = %p2	
 FD92	FB00	DOC
 FD93	3	CDargRef	
 FD94	5	CVarRef	
 FD95	3	ExitProcCb	
 FD96	3	ExitProcCbStack	
 FD97	FB00	DOC
 FD98	FB00	DOC
 FD99	35	DOC
 FD9A	2F	DOC
 FD9B	1A	DOC							im not sure if this is a Duplicate or not...
 FD9C	3	FStAdNoPop	h%
 FD9D	5B	DOC
 FD9E	21	DOC
 FD9F	1	LdPrVar			
 FDA0	3	ImpAdLdUI1	
 FDA1	3	ImpAdLdI2	
 FDA2	3	ImpAdLdStr	
 FDA3	3	ImpAdLdStr	
 FDA4	3	ImpAdLdCy	
 FDA5	3	ImpAdLdCy	
 FDA6	0005	DOC	
 FDA7	3	ImpAdLdStr	
 FDA8	3	ImpAdLdStr	
 FDA9	3	ImpAdLdFPR4	
 FDAA	3	ImpAdLdFPR8	
 FDAB	3	ImpAdLdPr	
 FDAC	0005	DOC	
 FDAD	3	ImpAdLdVar	
 FDAE	FB00	DOC
 FDAF	FB00	DOC
 FDB0	3	ImpAdStUI1	
 FDB1	3	ImpAdStI2	
 FDB2	3	ImpAdStR4	
 FDB3	3	ImpAdStR4	
 FDB4	3	ImpAdStR8	
 FDB5	3	ImpAdStR8	
 FDB6	3	ImpAdStVar	
 FDB7	3	ImpAdStStr	
 FDB8	3	ImpAdStAd	
 FDB9	3	ImpAdStFPR4	
 FDBA	3	ImpAdStFPR8	
 FDBB	3	ImpAdStVarAd	
 FDBC	3	ImpAdStVarAdFunc	
 FDBD	3	ImpAdStVarUnk	
 FDBE	3	ImpAdStVarUnkFunc	
 FDBF	3	ImpAdStAdFunc	
 FDC0	3	ImpAdStVarCopy	
 FDC1	3	ImpAdStStrCopy	
 FDC2	3	PopTmpLdAd1	
 FDC3	3	PopTmpLdAd2	l		
 FDC4	3	PopTmpLdAdStr	
 FDC5	3	PopTmpLdAd8	
 FDC6	3	PopTmpLdAdVar	
 FDC7	3	PopTmpLdAdStr	
 FDC8	3	PopTmpLdAdFPR4	
 FDC9	3	PopTmpLdAdFPR8	
 FDCA	3	CopyBytes	
 FDCB	5	ExitForCollObj	
 FDCC	5	ExitForCollObj	
 FDCD	5	ExitForCollObj	
 FDCE	5	ExitForAryVar	
 FDCF	5	ExitForVar	
 FDD0	5	FMemLdUI1	
 FDD1	5	FMemLdI2	
 FDD2	5	FMemLdR4	
 FDD3	5	FMemLdR4	
 FDD4	5	FMemLdR8	
 FDD5	5	FMemLdR8	
 FDD6	5	FMemLdRf	
 FDD7	5	FMemLdR4	
 FDD8	5	FMemLdR4	
 FDD9	5	FMemLdFPR4	
 FDDA	5	FMemLdFPR8	
 FDDB	5	FMemLdPr	
 FDDC	5	FMemLdRf	
 FDDD	5	FMemLdVar	
 FDDE	FB00	DOC
 FDDF	FB00	DOC
 FDE0	5	FMemStUI1	
 FDE1	5	FMemStI2	
 FDE2	5	FMemStR4	
 FDE3	5	FMemStR4	
 FDE4	5	FMemStR8	
 FDE5	5	FMemStR8	
 FDE6	5	FMemStVar	
 FDE7	5	FMemStStr	
 FDE8	5	FMemStAd	
 FDE9	5	FMemStFPR4	
 FDEA	5	FMemStFPR8	
 FDEB	5	FMemStVarAd	
 FDEC	5	FMemStVarAdFunc	
 FDED	5	FMemStVarUnk	
 FDEE	5	FMemStVarUnkFunc	
 FDEF	5	FMemStAdFunc	
 FDF0	5	FMemStVarCopy	
 FDF1	5	FMemStStrCopy	
 FDF2	3	CastAd	
 FDF3	3	CastAdVar	
 FDF4	3	New	
 FDF5	3	NewIfNullRf	
 FDF6	3	NewIfNullAd	
 FDF7	24	DOC
 FDF8	3	CVarBoolI2	
 FDF9	3	CVarDateVar	
 FDFA	3	CVarErrI4	
 FDFB	3	CVarDate	
 FDFC	3	CVarAryVarg	
 FDFD	1	CStrVarTmp			
 FDFE	3	CStrVarVal	
 FDFF	5	DestructOFrame	
 FE00	3	ThisVCallUI1	
 FE01	3	ThisVCallI2	
 FE02	3	ThisVCallI2	
 FE03	3	ThisVCallR4	
 FE04	3	ThisVCallR8	
 FE05	3	ThisVCallCy	
 FE06	FB00	DOC
 FE07	3	ThisVCallI2	
 FE08	3	ThisVCallI2	
 FE09	3	ThisVCallHidden	
 FE0A	3	ThisVCallHidden	
 FE0B	FB00	DOC
 FE0C	3	ThisVCallHidden	
 FE0D	5	ThisVCallCbFrame	
 FE0E	3	StLsetFixStr	
 FE0F	3	StFixedStrFree	
 FE10	3	VCallUI1	
 FE11	3	VCallStr	
 FE12	3	VCallStr	
 FE13	3	VCallR4	
 FE14	3	VCallR8	
 FE15	3	VCallCy	
 FE16	FB00	DOC
 FE17	3	VCallStr	
 FE18	3	VCallStr	
 FE19	3	VCallFPR8	
 FE1A	3	VCallFPR8	
 FE1B	FB00	DOC
 FE1C	3	VCallFPR8	
 FE1D	5	VCallCbFrame	
 FE1E	3	StFixedStrR	
 FE1F	3	StFixedStrRFree	
 FE20	5	ImpAdCallUI1	
 FE21	5	ImpAdCallI4	
 FE22	FE21	DOC
 FE23	5	ImpAdCallR4	
 FE24	5	ImpAdCallR8	
 FE25	5	ImpAdCallCy	
 FE26	FB00	DOC
 FE27	5	ImpAdCallI4	
 FE28	FE27	DOC
 FE29	0A	DOC
 FE2A	0A	DOC
 FE2B	FB00	DOC
 FE2C	0A	DOC
 FE2D	9	ImpAdCallCbFrame	
 FE2E	3	LdStkRf	
 FE2F	3	LdFrameRf	
 FE30	FB00	DOC
 FE31	FB00	DOC
 FE32	FB00	DOC
 FE33	FB00	DOC
 FE34	FB00	DOC
 FE35	FB00	DOC
 FE36	FB00	DOC
 FE37	FB00	DOC
 FE38	FB00	DOC
 FE39	FB00	DOC
 FE3A	FB00	DOC
 FE3B	FB00	DOC
 FE3C	FB00	DOC
 FE3D	5	LitVarUI1	
 FE3E	FB00	DOC
 FE3F	FB00	DOC
 FE40	FB00	DOC
 FE41	FB00	DOC
 FE42	FB00	DOC
 FE43	FB00	DOC
 FE44	FB00	DOC
 FE45	FB00	DOC
 FE46	FB00	DOC
 FE47	FB00	DOC
 FE48	FB00	DOC
 FE49	FB00	DOC
 FE4A	FB00	DOC
 FE4B	FB00	DOC
 FE4C	FB00	DOC
 FE4D	1	SetVarVar			
 FE4E	1	SetVarVarFunc			
 FE4F	5	ImpAdCallHresult	
 FE50	FB00	DOC
 FE51	FB00	DOC
 FE52	FB00	DOC
 FE53	FB00	DOC
 FE54	FB00	DOC
 FE55	FB00	DOC
 FE56	FB00	DOC
 FE57	FB00	DOC
 FE58	FB00	DOC
 FE59	FB00	DOC
 FE5A	FB00	DOC
 FE5B	FB00	DOC
 FE5C	FB00	DOC
 FE5D	3	OpenFile	
 FE5E	3	LockFile	
 FE5F	FB00	DOC
 FE60	3	EraseDestruct	
 FE61	3	LdFixedStr	
 FE62	5	ForUI1	ln	For %p2	= %p3 to %p1
 FE63	5	ForI2	ln	For %p2	= %p3 to %p1	
 FE64	5	ForI4	ln	For %p2	= %p3 to %p1
 FE65	5	ForR4	ln	For %p2	= %p3 to %p1
 FE66	5	ForR8	ln	For %p2	= %p3 to %p1
 FE67	5	ForCy	ln	For %p2	= %p3 to %p1
 FE68	5	ForVar	ln	For %p2	= %p3 to %p1
 FE69	FB00	DOC
 FE6A	5	ForStepUI1	ln	For %p3	= %p4 to %p2 Step %p1
 FE6B	5	ForStepI2	ln	For %p3	= %p4 to %p2 Step %p1	
 FE6C	5	ForStepI4	ln	For %p3	= %p4 to %p2 Step %p1
 FE6D	5	ForStepR4	ln	For %p3	= %p4 to %p2 Step %p1
 FE6E	5	ForStepR8	ln	For %p3	= %p4 to %p2 Step %p1
 FE6F	5	ForStepCy	ln	For %p3	= %p4 to %p2 Step %p1
 FE70	5	ForStepVar	ln	For %p3	= %p4 to %p2 Step %p1
 FE71	FB00	DOC
 FE72	5	ForEachCollVar	
 FE73	5	NextEachCollVar	
 FE74	5	ForEachCollAd	
 FE75	5	NextEachCollAd	
 FE76	7	ForEachAryVar	
 FE77	7	NextEachAryVar	
 FE78	5	NextUI1	
 FE79	0064	DOC
 FE7A	0066	DOC	
 FE7B	0068	DOC	
 FE7C	5	NextR8	
 FE7D	006A	DOC	
 FE7E	5	NextStepVar	
 FE7F	FB00	DOC
 FE80	5	NextStepUI1	
 FE81	65	DOC
 FE82	5	NextStepI4	
 FE83	5	NextStepR4	
 FE84	FE7C	DOC	
 FE85	006A	DOC	
 FE86	FE7E	DOC	
 FE87	FB00	DOC
 FE88	7	ForEachCollObj	
 FE89	5	ForEachVar	
 FE8A	5	ForEachVarFree	
 FE8B	7	NextEachCollObj	
 FE8C	9	NextEachVar	
 FE8D	3	CheckType	
 FE8E	9	Redim	h&h&	Redim %p1(%p2)
 FE8F	9	RedimPreserve	h&h&	Redim Preserve %p1(%p2)	
 FE90	5	RedimVar	
 FE91	5	RedimPreserveVar	
 FE92	5	FDupVar	
 FE93	5	FDupStr	
 FE94	FB00	DOC
 FE95	7	OnGosub	
 FE96	7	OnGoto	
 FE97	1	AddRef			
 FE98	5	LateMemCall	
 FE99	5	LateMemLdVar	
 FE9A	7	LateMemCallLdVar	
 FE9B	3	LateMemSt	
 FE9C	5	LateMemCallSt	
 FE9D	5	LateMemStAd	
 FE9E	4	ExitProcFrameCb	
 FE9F	4	ExitProcFrameCbStack	
 FEA0	7	LateIdCall	
 FEA1	7	LateIdLdVar	
 FEA2	9	LateIdCallLdVar	
 FEA3	5	LateIdSt	
 FEA4	7	LateIdCallSt	
 FEA5	7	LateIdStAd	
 FEA6	7	LateMemNamedCall	
 FEA7	9	LateMemNamedCallLdVar	
 FEA8	7	LateMemNamedCallSt	
 FEA9	7	LateMemNamedStAd	
 FEAA	9	LateIdNamedCall	
 FEAB	11	LateIdNamedCallLdVar	
 FEAC	9	LateIdNamedCallSt	
 FEAD	9	LateIdNamedStAd	
 FEAE	5	VarIndexLdVar	
 FEAF	5	VarIndexLdRfVar	
 FEB0	3	VarIndexSt	
 FEB1	3	VarIndexStAd	
 FEB2	36	DOC
 FEB3	0032	DOC
 FEB4	0029	DOC
 FEB5	00F3	DOC	
 FEB6	3	LitI2FP	
 FEB7	5	LitCy4	
 FEB8	F5	DOC
 FEB9	F5	DOC
 FEBA	5	LitR4FP	
 FEBB	9	LitR8	
 FEBC	9	LitR8	
 FEBD	9	LitR8FP	
 FEBE	9	LitR8FP	
 FEBF	001B	DOC
 FEC0	0028	DOC	
 FEC1	7	LitVarI4	
 FEC2	7	LitVarR4	
 FEC3	11	LitVarCy	
 FEC4	11	LitVarR8	
 FEC5	11	LitVarDate	
 FEC6	3A	DOC
 FEC7	1	CStrBool			
 FEC8	1	CStrDate		<CStr(%p1)	
 FEC9	1	CDateStr		<CDate(%p1)	
 FECA	FB00	DOC
 FECB	FB00	DOC
 FECC	1	FreeStrNoPop			
 FECD	1	FreeVarNoPop			
 FECE	1	FreeAdNoPop			
 FECF	1	EraseNoPop			
 FED0	3	WMemLdUI1	
 FED1	3	WMemLdI2	
 FED2	3	WMemLdStr	
 FED3	3	WMemLdStr	
 FED4	3	WMemLdCy	
 FED5	3	WMemLdCy	
 FED6	3	WMemLdRfVar	
 FED7	3	WMemLdStr	
 FED8	3	WMemLdStr	
 FED9	3	WMemLdFPR4	
 FEDA	3	WMemLdFPR8	
 FEDB	3	IWMemLdPr	
 FEDC	3	WMemLdRfVar	
 FEDD	3	WMemLdVar	
 FEDE	FB00	DOC
 FEDF	FB00	DOC
 FEE0	3	WMemStUI1	
 FEE1	3	WMemStI2	
 FEE2	3	WMemStR4	
 FEE3	3	WMemStR4	
 FEE4	3	WMemStR8	
 FEE5	3	WMemStR8	
 FEE6	3	WMemStVar	
 FEE7	3	WMemStStr	
 FEE8	3	WMemStAd	
 FEE9	3	WMemStFPR4	
 FEEA	3	WMemStFPR8	
 FEEB	3	WMemStVarAd	
 FEEC	3	WMemStVarAdFunc	
 FEED	3	WMemStVarUnk	
 FEEE	3	WMemStVarUnkFunc	
 FEEF	3	WMemStAdFunc	
 FEF0	3	WMemStVarCopy	
 FEF1	3	WMemStStrCopy	
 FEF2	7	VarIndexLdRfVarLock	
 FEF3	FB00	DOC
 FEF4	FB00	DOC
 FEF5	3	AssignRecord	
 FEF6	5	DestructAnsiOFrame	
 FEF7	3	FStVarZero	
 FEF8	4E	DOC
 FEF9	1	VerifyVarObj			
 FEFA	1	VerifyPVarObj			
 FEFB	1	FnInStrB4			
 FEFC	3	FnInStrB4Var	
 FEFD	1	FnInStr4		<InStr(%p4	%p3	%p2	%p1)	
 FEFE	3	FnInStr4Var	
 FEFF	1	FnStrComp3			
 FF00	3	FnStrComp3Var	
 FF01	1	StAryMove			
 FF02	1	StAryCopy			
 FF03	3	StAryRecMove	
 FF04	3	StAryRecCopy	
 FF05	FB00	DOC
 FF06	5	AryInRecLdPr	
 FF07	5	AryInRecLdRf	
 FF08	1	CExtInstUnk			
 FF09	3	IStVarCopyObj	
 FF0A	1	ArrayRebase1Var			
 FF0B	1	Assert			
 FF0C	7	RaiseEvent	
 FF0D	5	PrintObject	
 FF0E	5	PrintFile	
 FF0F	5	WriteFile	
 FF10	5	InputFile	
 FF11	FB00	DOC
 FF12	1	GetRecFxStr3			
 FF13	1	GetRecFxStr4			
 FF14	1	PutRecFxStr3			
 FF15	1	PutRecFxStr4			
 FF16	3	GetRecOwn3	
 FF17	3	GetRecOwn4	
 FF18	3	PutRecOwn3	
 FF19	3	PutRecOwn4	
 FF1A	2	LitI2_Byte	
 FF1B	1	CBoolVarNull			
 FF1C	2	LargeBos	
 FF1D	1	Bos	
 FF1E	5	ImpAdCallNonVirt	
 FF1F	FB00	DOC
 FF20	FB00	DOC
 FF21	FB00	DOC
 FF22	FB00	DOC
 FF23	FB00	DOC
 FF24	FB00	DOC
 FF25	FB00	DOC
 FF26	FB00	DOC
 FF27	FB00	DOC
 FF28	FB00	DOC
 FF29	FB00	DOC
 FF2A	3	DestructRecord	
 FF2B	3	VCallFPR8	
 FF2C	3	ThisVCallHidden	
 FF2D	1	ZeroRetVal			
 FF2E	1	ZeroRetValVar			
 FF2F	5	ExitProcCbHresult	
 FF30	7	ExitProcFrameCbHresult	
 FF31	3	EraseDestrKeepData	
 FF32	5	CDargRefUdt	
 FF33	5	CVarRefUdt	
 FF34	5	CVarUdt	
 FF35	3	StUdtVar	
 FF36	3	StAryVar	
 FF37	3	CopyBytesZero	
 FF38	5	FLdZeroAry	
 FF39	3	FStVarZero	
 FF3A	7	CVarAryUdt	
 FF3B	7	RedimVarUdt	
 FF3C	7	RedimPreserveVarUdt	
 FF3D	5	VarLateMemLdRfVar	
 FF3E	6	VarLateMemCallLdRfVar	
 FF3F	FB00	DOC
 FF40	FB00	DOC
 FF41	5	VarLateMemLdVar	
 FF42	7	VarLateMemCallLdVar	
 FF43	3	VarLateMemSt	
 FF44	5	VarLateMemCallSt	
 FF45	5	VarLateMemStAd	
 FF46	FB00	DOC
 FF47	1	Unknown	
 FF48	1	Unknown	
 FF49	1	Unknown	
 FF4A	1	Unknown	
 FF4B	1	Unknown	
 FF4C	1	Unknown	
 FF4D	1	Unknown	
 FF4E	1	Unknown	
 FF4F	1	Unknown	
 FF50	1	Unknown	
 FF51	1	Unknown	
 FF52	1	Unknown	
 FF53	1	Unknown	
 FF54	1	Unknown	
 FF55	1	Unknown	
 FF56	1	Unknown	
 FF57	1	Unknown	
 FF58	1	Unknown	
 FF59	1	Unknown	
 FF5A	1	Unknown	
 FF5B	1	Unknown	
 FF5C	1	Unknown	
 FF5D	1	Unknown	
 FF5E	1	Unknown	
 FF5F	1	Unknown	
 FF60	1	Unknown	
 FF61	1	Unknown	
 FF62	1	Unknown	
 FF63	1	Unknown	
 FF64	1	Unknown	
 FF65	1	Unknown	
 FF66	1	Unknown	
 FF67	1	Unknown	
 FF68	1	Unknown	
 FF69	1	Unknown	
 FF6A	1	Unknown	
 FF6B	1	Unknown	
 FF6C	1	Unknown	
 FF6D	1	Unknown	
 FF6E	1	Unknown	
 FF6F	1	Unknown	
 FF70	1	Unknown	
 FF71	1	Unknown	
 FF72	1	Unknown	
 FF73	1	Unknown	
 FF74	1	Unknown	
 FF75	1	Unknown	
 FF76	1	Unknown	
 FF77	1	Unknown	
 FF78	1	Unknown	
 FF79	1	Unknown	
 FF7A	1	Unknown	
 FF7B	1	Unknown	
 FF7C	1	Unknown	
 FF7D	1	Unknown	
 FF7E	1	Unknown	
 FF7F	1	Unknown	
 FF80	1	Unknown	
 FF81	1	Unknown	
 FF82	1	Unknown	
 FF83	1	Unknown	
 FF84	1	Unknown	
 FF85	1	Unknown	
 FF86	1	Unknown	
 FF87	1	Unknown	
 FF88	1	Unknown	
 FF89	1	Unknown	
 FF8A	1	Unknown	
 FF8B	1	Unknown	
 FF8C	1	Unknown	
 FF8D	1	Unknown	
 FF8E	1	Unknown	
 FF8F	1	Unknown	
 FF90	1	Unknown	
 FF91	1	Unknown	
 FF92	1	Unknown	
 FF93	1	Unknown	
 FF94	1	Unknown	
 FF95	1	Unknown	
 FF96	1	Unknown	
 FF97	1	Unknown	
 FF98	1	Unknown	
 FF99	1	Unknown	
 FF9A	1	Unknown	
 FF9B	1	Unknown	
 FF9C	1	Unknown	
 FF9D	1	Unknown	
 FF9E	1	Unknown	
 FF9F	1	Unknown	
 FFA0	1	Unknown	
 FFA1	1	Unknown	
 FFA2	1	Unknown	
 FFA3	1	Unknown	
 FFA4	1	Unknown	
 FFA5	1	Unknown	
 FFA6	1	Unknown	
 FFA7	1	Unknown	
 FFA8	1	Unknown	
 FFA9	1	Unknown	
 FFAA	1	Unknown	
 FFAB	1	Unknown	
 FFAC	1	Unknown	
 FFAD	1	Unknown	
 FFAE	1	Unknown	
 FFAF	1	Unknown	
 FFB0	1	Unknown	
 FFB1	1	Unknown	
 FFB2	1	Unknown	
 FFB3	1	Unknown	
 FFB4	1	Unknown	
 FFB5	1	Unknown	
 FFB6	1	Unknown	
 FFB7	1	Unknown	
 FFB8	1	Unknown	
 FFB9	1	Unknown	
 FFBA	1	Unknown	
 FFBB	1	Unknown	
 FFBC	1	Unknown	
 FFBD	1	Unknown	
 FFBE	1	Unknown	
 FFBF	1	Unknown	
 FFC0	1	Unknown	
 FFC1	1	Unknown	
 FFC2	1	Unknown	
 FFC3	1	Unknown	
 FFC4	1	Unknown	
 FFC5	1	Unknown	
 FFC6	1	Unknown	
 FFC7	1	Unknown	
 FFC8	1	Unknown	
 FFC9	1	Unknown	
 FFCA	1	Unknown	
 FFCB	1	Unknown	
 FFCC	1	Unknown	
 FFCD	1	Unknown	
 FFCE	1	Unknown	
 FFCF	1	Unknown	
 FFD0	1	Unknown	
 FFD1	1	Unknown	
 FFD2	1	Unknown	
 FFD3	1	Unknown	
 FFD4	1	Unknown	
 FFD5	1	Unknown	
 FFD6	1	Unknown	
 FFD7	1	Unknown	
 FFD8	1	Unknown	
 FFD9	1	Unknown	
 FFDA	1	Unknown	
 FFDB	1	Unknown	
 FFDC	1	Unknown	
 FFDD	1	Unknown	
 FFDE	1	Unknown	
 FFDF	1	Unknown	
 FFE0	1	Unknown	
 FFE1	1	Unknown	
 FFE2	1	Unknown	
 FFE3	1	Unknown	
 FFE4	1	Unknown	
 FFE5	1	Unknown	
 FFE6	1	Unknown	
 FFE7	1	Unknown	
 FFE8	1	Unknown	
 FFE9	1	Unknown	
 FFEA	1	Unknown	
 FFEB	1	Unknown	
 FFEC	1	Unknown	
 FFED	1	Unknown	
 FFEE	1	Unknown	
 FFEF	1	Unknown	
 FFF0	1	Unknown	
 FFF1	1	Unknown	
 FFF2	1	Unknown	
 FFF3	1	Unknown	
 FFF4	1	Unknown	
 FFF5	1	Unknown	
 FFF6	1	Unknown	
 FFF7	1	Unknown	
 FFF8	1	Unknown	
 FFF9	1	Unknown	
 FFFA	1	Unknown	
 FFFB	1	Unknown	
 FFFC	1	Unknown	
 FFFD	1	Unknown	
 FFFE	1	Unknown	
 FFFF	1	Unknown	
 

Я конечно же не помню, откуда я его рипнул, но без него никуда/ Надеюсь, что эта статья дала необходимый набор знаний для продолжения изучения p-code. Всё, что я тут изложил было изучено за день.

Приветы to:
All my command, cracklab, а особенно Alex(особеннее), Mario555 (а ему ещё особенее:), WELL, Bad_Guy. И to: dragon_gor, NUCLEuS и всем, кого я забыл…



Обсуждение статьи: Пропатчивание P-Code программ >>>


Комментарии к статье: Пропатчивание P-Code программ

ZeRo 13.08.2005 22:24:45
ne4o niponel piri4itaju e6o razok
---
SLV 14.08.2005 22:56:32
• Что такое p-code?
o Это один из способов компиляции Visual Basic программ.
...
уверен?
---
BiT-H@ck 17.08.2005 08:02:40
Ну это псевдо-код, интерпретируемый на виртуальной машине. Так лучше? Новичок вообще от такого определения завянет
---
SLV 19.08.2005 14:15:27
pseudo code

artificial language similar to computer language

---

Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS