Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
8
����� ����� � ������
�������
����H���H�� ������H�����
��� ���� �� ��� ����, ��� ����� ��p��� ������. ��p����� ��������, ���
�p�������� �� �p��������p��� ����� p�����p����. ��p������ ���������p����
����� � ����� ���������, �� �� ���� �� ��������. �.�. �������������� �
�����p����� ��p��� ��� �� ���� ���� p����� �p��p����. H�, ����������
����� ����� ������. ���p����� �p������� ���� ��p������� ��������� ��������-
���p����� �����, ��� ��� ���� �������� ����, '46 60', �.�. [esi+60] � '46
68'- [esi+68]. ���������� p�������� ������ �������� �������� ��p���� -
--------------------�
+ �
� �
� �
� �
� �
� �
� �
� p������ pe �
L--------------------
������ ������ ������� ��p����, �� ��� ��? ������, ��� ������ ��������
����p����� � �p�������� p������� ����p��. � ���� �� ������ � ���, ���
������ ����� �� �����, ��� ��� ����� ��� ���p������� (��� �� ��� �� �
�p����������� �� �������� �����). ������ ��������� ������� �
p���������������� (��p���������������� �p��p����). � ������ �p���p� ���
�p�������� ������, �� ��� �� ����� ����� � ����������, �������, ������p���
�p��������. ���� ���p������� p������� ������ ���� p���� ��������� �����,
�� �����p������ ����������� �p������� ���� �����������.
������, p��p�������� ����� ����� ������� �� ����, ��� ��������p ���
p���������� ��� ����� ������ �� �p�� �p���, ����������� ��p��� �p���p�
�����. � ����� ����, � ����� �p���p� ����p�p�� ��� ��p������ ���� DWORD -
[esi+60] � [esi+68]. H��p���� ��������, ��� ����� ���� ��p��������� "��p��"
p���� � ������� �����. ����� ���� ��� ��p������ - ��� ���� ���� ������?
���p����� ����� '46 64':
s0.SetAt(0,s0[0]*(!RegFlag_1 ^ RegFlag_3));
.text:00401440
.text:00401440 push 0
.text:00401442 push 0
.text:00401444 push offset unk_0_404090
.text:00401449 call j_?AfxMessageBox@@YGHPBDII@Z
.text:0040144E xor eax, eax
.text:00401450 retn 4
.text:0040144E NagScreen endp
.text:0040144E
MFC42.DLL
403FE0 Import Address Table
4041E0 Import Name Table
0 time date stamp
0 Index of first forwarder reference
Ordinal 4953
������� �����
�. ��p��p�. "���"
if (!IsValidUser)
{
Message("Invalid user! Aborting...");
Abort;
}
CALL IsValidUser
OR AX,AX
JZ continue
^^^^^^^^^^^^^
PUSH offset str_invalid_user
CALL Message
CALL Abort
continue: ; ��p������� �p��������� ��������� �p��p����
...........
IsValidUser;
if (!true)
{
Message("Invalid user! Aborting...");
Abort;
}
a xor b xor a = b.
a\b � 0 � 1
-----+---------------------+---------------------
0 � 0 xor 0 xor 0 == 0 � 0 xor 1 xor 0 == 1
� �
1 � 1 xor 0 xor 1 == 0 � 1 xor 1 xor 1 == 1
�
�������, ��� xor ��� ������ ���p���. �p������� a � b ����� ����� ������
��� ������� 0,1. ������, ����� �� ���p����� �p������� �� �� ���p��� ��
������������������ �����. ������� �p������p� XOR word, const �� ����� ����
�p��������� ����� �� word xor const, � ������������������ ���p����
��� ������ ��p�� ����� ���� ��p�������.
����p� ��p���� ��������, ��� a xor 0 == a; a xor 1 == !a. �.�.
��������� � ����� ���p����� ������ ������ ��������� ����. �������
p����������� ����p��� ���� �����, � ����p�� ��������� � ������� ����
p������p�� ��p�������. � �p���p�, 00001111b (0xF) ����� ������ ������, �.�.
�������� ����������� ����p� ���p��� ���� � ������ ������� ���p�������, ���
�������� (��� ����� �������� ����) ������� ��������� ���p. ����� 01010011
�������� ���������� ��p��������� p���p�������� �������� �������� �
���p�������, ������� �������� ��p����.
------------------------� ------------------------�
� � � �
� p������ p1 � � p������ p2 �
L------------------------ L------------------------
��� p����p���� � ���� ����� �������� ���� � ������? ��� ������ ��� ��� �
���� ����?
��� �� ������ �p������ ���������� �����������p IDA, �����p������
���p������ ��-�������� ����. �������� ��p��� (file://CD:/SRC/crypt00.
idc) �������� ��� �������������. ��� �� ��� ��������� �� ���������� �����
���� ������� : idax -Scrypt00.idc crypt00.com
�������p�� ��� �� p�������:
---------------�
L--------------- ,
T�T-------------T�T----- - - -
+---------------+------- - - -
� �
�<---- L ------>�
CalcCRC: ; <--------------------------------�
LODSB ; ������ ���� ���������� ��p�� �
ADD AH,AL ; �����p��� �
LOOP CalcCRC ; --{CX}----------------------------
CmpCRC: ; <--------------------------------�
DEC SI ; �������� ���� �
ADD CL,[SI] ; �����p����� �
CMP SI,offset Crypt ; ?����� �
JNB CmpCRC ; --{SI>offset Crypt}---------------
----------------------�
� �
� p������ 5 �
L----------------------
� ��� ���������HH�� �����? ��� �� ����� ����� �p�������? ����������
�������� xor 0x20 ��p������� ���������� ����� � �p������������� p�����p
���p��� � ����p�� ������ ����� ��� �����. � ������� ����p���� ����
������p�� ����� ������ ��p����, ����p�� � p����� ������� ������ ���
�p�������������. �� ���� �� ����p��� ����. � ����p� ���� ���������, ���
0x20 - 100000b, �� ���p���� ��������, ��� ����� ��� ����� ����� ���� ���
�� ������ ����! �.�. ���p������ ����� ���� ��� ��������� �� ���������.
��p���� �p����������� ����� �p���p�� �� ������ ����, ������ - ���.
�������, ��� ����� ������ ����� � ���� ���p�� �� ��� ����, ��� ���
������ �� ��p��� �����, � ��p������� ������������ ������ ���� �����
��������.
ORC
v ����-���� ��������
!IDA DEBUGER!