ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > Реверсинг
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 17.09.2007, 14:07
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Алгоритм: adler32
Синтаксис: masm
Описание: оптимизированный алгоритм вычисления контрольных сумм adler32.
Код:
Код:
.686
.model flat,stdcall
option casemap:none

.const

ADLER32_BASE equ 65521 
ADLER32_NMAX equ 5552 

.code

align dword
Adler32 proc uses edi esi ebx lpBuffer:DWORD, dwBufLen:DWORD, dwAdler:DWORD
	mov eax,dwAdler
	mov ecx,dwBufLen
	mov ebx,dwAdler
	and eax,0FFFFh
	shr ebx,16
	mov esi,lpBuffer
	jmp @F
	.repeat
		mov edi,ADLER32_NMAX
		.if ecx<edi
			mov edi,ecx
		.endif
        sub ecx,edi
		.repeat
			movzx edx,byte ptr [esi]
			add eax,edx
			inc esi
			add ebx,eax
			dec edi
		.until ZERO?
        mov edi,ADLER32_BASE
        xor edx,edx
        div edi
        push edx
        mov eax,ebx
        sub edx,edx
        div edi
        mov ebx,edx
        pop eax
@@:		
            test ecx,ecx
	.until ZERO?
	shl ebx,16
	add eax,ebx
	ret
Adler32 endp

end
 

  #12  
Старый 03.10.2007, 21:10
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Алгоритм: Реализация агоритма sha-1
Синтаксис: masm
Описание: оптимизированный алгоритм sha-1
Комментарий: самая вменяемая реализация из всех мне встречавшихся.

Код:

Код:
.686
.model flat,stdcall
option casemap:none

.data?
SHA1HashBuf db 64 dup(?)
SHA1Len dd ?
SHA1Index dd ?
SHA1Digest dd 5 dup(?)
  
.code
SHA1F0 macro dwA, dwB, dwC, dwD, dwE, locX, constAC
	mov	edi, dwC
	xor	edi, dwD
	and	edi, dwB
	xor	edi, dwD
	lea	dwE, [dwE + constAC + edi]
	rol	dwB, 30
	mov	edi, dwA
	rol	edi, 05
	add	dwE, [locX]
	add	dwE, edi
ENDM

SHA1F1 macro dwA, dwB, dwC, dwD, dwE, locX, constAC
	mov	edi, dwC
	xor	edi, dwD
	xor	edi, dwB
	lea	dwE, [dwE + constAC + edi]
	rol	dwB, 30
	mov	edi, dwA
	rol	edi, 05
	add	dwE, [locX]
	add	dwE, edi
ENDM

SHA1F2	macro dwA, dwB, dwC, dwD, dwE, locX, constAC
	mov	edi,dwB
	or edi,dwC
	and edi,dwD
	mov ebp,edi
	mov	edi,dwB
	and edi,dwC
	or edi,ebp
	lea	dwE,[dwE + constAC + edi]
	rol	dwB,30
	mov	edi,dwA
	rol	edi,05
	add	dwE,[locX]
	add	dwE,edi
ENDM

SHA1F3 macro dwA, dwB, dwC, dwD, dwE, locX, constAC
	mov	edi,dwC
	xor	edi,dwD
	xor	edi,dwB
	lea	dwE,[dwE + constAC + edi]
	rol	dwB,30
	mov	edi,dwA
	rol	edi,05
	add	dwE,[locX]
	add	dwE,edi
endm

align dword
SHA1Transform proc
	pushad
	SHA1locals equ 80*4
	sub esp,SHA1locals
	SHA1W equ dword ptr [esp]
	mov edi,offset SHA1HashBuf
	xor ebx,ebx
	.repeat
		mov eax,[edi+ebx*4]
		mov ecx,[edi+ebx*4+4]
		mov edx,[edi+ebx*4+32]
		mov esi,[edi+ebx*4+32+4]
		bswap eax
		bswap edx
		bswap ecx
		bswap esi
		mov SHA1W[ebx*4],eax
		mov SHA1W[ebx*4+4],ecx
		mov SHA1W[ebx*4+32],edx
		mov SHA1W[ebx*4+32+4],esi
		inc ebx
		inc ebx
	.until ebx==8
	shl ebx,1
	.repeat
		mov	eax,SHA1W[(4*ebx)-03*4]
		mov	edx,SHA1W[(4*ebx+4)-03*4]
		xor	eax,SHA1W[(4*ebx)-08*4]
		xor	edx,SHA1W[(4*ebx+4)-08*4]
		xor	eax,SHA1W[(4*ebx)-14*4]
		xor	edx,SHA1W[(4*ebx+4)-14*4]
		xor	eax,SHA1W[(4*ebx)-16*4]
		xor	edx,SHA1W[(4*ebx+4)-16*4]
		rol	eax,1
		mov	SHA1W[4*ebx],eax
		rol	edx,1
		mov	SHA1W[4*ebx+4],edx
		inc ebx
		inc ebx
	.until ebx==80
	mov edi,offset SHA1Digest
	mov eax,[edi+0*4]
	mov ebx,[edi+1*4]
	mov ecx,[edi+2*4]
	mov edx,[edi+3*4]
	mov esi,[edi+4*4]
	;========================================================
	SHA1F0 eax, ebx, ecx, edx, esi, SHA1W[00*4], 05a827999h
	SHA1F0 esi, eax, ebx, ecx, edx, SHA1W[01*4], 05a827999h
	SHA1F0 edx, esi, eax, ebx, ecx, SHA1W[02*4], 05a827999h
	SHA1F0 ecx, edx, esi, eax, ebx, SHA1W[03*4], 05a827999h
	SHA1F0 ebx, ecx, edx, esi, eax, SHA1W[04*4], 05a827999h
	SHA1F0 eax, ebx, ecx, edx, esi, SHA1W[05*4], 05a827999h
	SHA1F0 esi, eax, ebx, ecx, edx, SHA1W[06*4], 05a827999h
	SHA1F0 edx, esi, eax, ebx, ecx, SHA1W[07*4], 05a827999h
	SHA1F0 ecx, edx, esi, eax, ebx, SHA1W[08*4], 05a827999h
	SHA1F0 ebx, ecx, edx, esi, eax, SHA1W[09*4], 05a827999h
	SHA1F0 eax, ebx, ecx, edx, esi, SHA1W[10*4], 05a827999h
	SHA1F0 esi, eax, ebx, ecx, edx, SHA1W[11*4], 05a827999h
	SHA1F0 edx, esi, eax, ebx, ecx, SHA1W[12*4], 05a827999h
	SHA1F0 ecx, edx, esi, eax, ebx, SHA1W[13*4], 05a827999h
	SHA1F0 ebx, ecx, edx, esi, eax, SHA1W[14*4], 05a827999h
	SHA1F0 eax, ebx, ecx, edx, esi, SHA1W[15*4], 05a827999h
	SHA1F0 esi, eax, ebx, ecx, edx, SHA1W[16*4], 05a827999h
	SHA1F0 edx, esi, eax, ebx, ecx, SHA1W[17*4], 05a827999h
	SHA1F0 ecx, edx, esi, eax, ebx, SHA1W[18*4], 05a827999h
	SHA1F0 ebx, ecx, edx, esi, eax, SHA1W[19*4], 05a827999h
	;========================================================
	SHA1F1 eax, ebx, ecx, edx, esi, SHA1W[20*4], 06ed9eba1h
	SHA1F1 esi, eax, ebx, ecx, edx, SHA1W[21*4], 06ed9eba1h
	SHA1F1 edx, esi, eax, ebx, ecx, SHA1W[22*4], 06ed9eba1h
	SHA1F1 ecx, edx, esi, eax, ebx, SHA1W[23*4], 06ed9eba1h
	SHA1F1 ebx, ecx, edx, esi, eax, SHA1W[24*4], 06ed9eba1h
	SHA1F1 eax, ebx, ecx, edx, esi, SHA1W[25*4], 06ed9eba1h
	SHA1F1 esi, eax, ebx, ecx, edx, SHA1W[26*4], 06ed9eba1h
	SHA1F1 edx, esi, eax, ebx, ecx, SHA1W[27*4], 06ed9eba1h
	SHA1F1 ecx, edx, esi, eax, ebx, SHA1W[28*4], 06ed9eba1h
	SHA1F1 ebx, ecx, edx, esi, eax, SHA1W[29*4], 06ed9eba1h
	SHA1F1 eax, ebx, ecx, edx, esi, SHA1W[30*4], 06ed9eba1h
	SHA1F1 esi, eax, ebx, ecx, edx, SHA1W[31*4], 06ed9eba1h
	SHA1F1 edx, esi, eax, ebx, ecx, SHA1W[32*4], 06ed9eba1h
	SHA1F1 ecx, edx, esi, eax, ebx, SHA1W[33*4], 06ed9eba1h
	SHA1F1 ebx, ecx, edx, esi, eax, SHA1W[34*4], 06ed9eba1h
	SHA1F1 eax, ebx, ecx, edx, esi, SHA1W[35*4], 06ed9eba1h
	SHA1F1 esi, eax, ebx, ecx, edx, SHA1W[36*4], 06ed9eba1h
	SHA1F1 edx, esi, eax, ebx, ecx, SHA1W[37*4], 06ed9eba1h
	SHA1F1 ecx, edx, esi, eax, ebx, SHA1W[38*4], 06ed9eba1h
	SHA1F1 ebx, ecx, edx, esi, eax, SHA1W[39*4], 06ed9eba1h
	;========================================================
	SHA1F2 eax, ebx, ecx, edx, esi, SHA1W[40*4], 08f1bbcdch
	SHA1F2 esi, eax, ebx, ecx, edx, SHA1W[41*4], 08f1bbcdch
	SHA1F2 edx, esi, eax, ebx, ecx, SHA1W[42*4], 08f1bbcdch
	SHA1F2 ecx, edx, esi, eax, ebx, SHA1W[43*4], 08f1bbcdch
	SHA1F2 ebx, ecx, edx, esi, eax, SHA1W[44*4], 08f1bbcdch
	SHA1F2 eax, ebx, ecx, edx, esi, SHA1W[45*4], 08f1bbcdch
	SHA1F2 esi, eax, ebx, ecx, edx, SHA1W[46*4], 08f1bbcdch
	SHA1F2 edx, esi, eax, ebx, ecx, SHA1W[47*4], 08f1bbcdch
	SHA1F2 ecx, edx, esi, eax, ebx, SHA1W[48*4], 08f1bbcdch
	SHA1F2 ebx, ecx, edx, esi, eax, SHA1W[49*4], 08f1bbcdch
	SHA1F2 eax, ebx, ecx, edx, esi, SHA1W[50*4], 08f1bbcdch
	SHA1F2 esi, eax, ebx, ecx, edx, SHA1W[51*4], 08f1bbcdch
	SHA1F2 edx, esi, eax, ebx, ecx, SHA1W[52*4], 08f1bbcdch
	SHA1F2 ecx, edx, esi, eax, ebx, SHA1W[53*4], 08f1bbcdch
	SHA1F2 ebx, ecx, edx, esi, eax, SHA1W[54*4], 08f1bbcdch
	SHA1F2 eax, ebx, ecx, edx, esi, SHA1W[55*4], 08f1bbcdch
	SHA1F2 esi, eax, ebx, ecx, edx, SHA1W[56*4], 08f1bbcdch
	SHA1F2 edx, esi, eax, ebx, ecx, SHA1W[57*4], 08f1bbcdch
	SHA1F2 ecx, edx, esi, eax, ebx, SHA1W[58*4], 08f1bbcdch
	SHA1F2 ebx, ecx, edx, esi, eax, SHA1W[59*4], 08f1bbcdch
	;========================================================
	SHA1F3 eax, ebx, ecx, edx, esi, SHA1W[60*4], 0ca62c1d6h
	SHA1F3 esi, eax, ebx, ecx, edx, SHA1W[61*4], 0ca62c1d6h
	SHA1F3 edx, esi, eax, ebx, ecx, SHA1W[62*4], 0ca62c1d6h
	SHA1F3 ecx, edx, esi, eax, ebx, SHA1W[63*4], 0ca62c1d6h
	SHA1F3 ebx, ecx, edx, esi, eax, SHA1W[64*4], 0ca62c1d6h
	SHA1F3 eax, ebx, ecx, edx, esi, SHA1W[65*4], 0ca62c1d6h
	SHA1F3 esi, eax, ebx, ecx, edx, SHA1W[66*4], 0ca62c1d6h
	SHA1F3 edx, esi, eax, ebx, ecx, SHA1W[67*4], 0ca62c1d6h
	SHA1F3 ecx, edx, esi, eax, ebx, SHA1W[68*4], 0ca62c1d6h
	SHA1F3 ebx, ecx, edx, esi, eax, SHA1W[69*4], 0ca62c1d6h
	SHA1F3 eax, ebx, ecx, edx, esi, SHA1W[70*4], 0ca62c1d6h
	SHA1F3 esi, eax, ebx, ecx, edx, SHA1W[71*4], 0ca62c1d6h
	SHA1F3 edx, esi, eax, ebx, ecx, SHA1W[72*4], 0ca62c1d6h
	SHA1F3 ecx, edx, esi, eax, ebx, SHA1W[73*4], 0ca62c1d6h
	SHA1F3 ebx, ecx, edx, esi, eax, SHA1W[74*4], 0ca62c1d6h
	SHA1F3 eax, ebx, ecx, edx, esi, SHA1W[75*4], 0ca62c1d6h
	SHA1F3 esi, eax, ebx, ecx, edx, SHA1W[76*4], 0ca62c1d6h
	SHA1F3 edx, esi, eax, ebx, ecx, SHA1W[77*4], 0ca62c1d6h 
	SHA1F3 ecx, edx, esi, eax, ebx, SHA1W[78*4], 0ca62c1d6h
	SHA1F3 ebx, ecx, edx, esi, eax, SHA1W[79*4], 0ca62c1d6h
	;========================================================
	mov edi,offset SHA1Digest
	add [edi+0*4],eax
	add [edi+1*4],ebx
	add [edi+2*4],ecx
	add [edi+3*4],edx
	add [edi+4*4],esi
	add esp,SHA1locals
	popad
	ret
SHA1Transform endp

SHA1BURN macro
	xor eax,eax
	mov SHA1Index,eax
	mov edi,Offset SHA1HashBuf
	mov ecx,(sizeof SHA1HashBuf)/4
	rep stosd
endm

align dword
SHA1Init proc uses edi
	xor eax, eax
	mov SHA1Len,eax
	SHA1BURN
	mov eax,offset SHA1Digest
	mov dword ptr [eax+00],067452301h
	mov dword ptr [eax+04],0efcdab89h
	mov dword ptr [eax+08],098badcfeh
	mov dword ptr [eax+12],010325476h
	mov	dword ptr [eax+16],0c3d2e1f0h
	ret
SHA1Init endp

align dword
SHA1Update proc uses esi edi ebx lpBuffer:dword, dwBufLen:dword
	mov ebx,dwBufLen
	add SHA1Len,ebx
	.while ebx
		mov eax,SHA1Index
		mov edx,64
		sub edx,eax
		.if edx <= ebx
			lea edi, [SHA1HashBuf+eax]	
			mov esi, lpBuffer
			mov ecx, edx
			rep movsb
			sub ebx, edx
			add lpBuffer, edx
			call SHA1Transform
			SHA1BURN
		.else
			lea edi, [SHA1HashBuf+eax]	
			mov esi, lpBuffer
			mov ecx, ebx
			rep movsb
			mov eax, SHA1Index
			add eax, ebx
			mov SHA1Index,eax
			.break
		.endif
	.endw
	ret
SHA1Update endp

align dword
SHA1Final proc uses esi edi
	mov ecx, SHA1Index
	mov byte ptr [SHA1HashBuf+ecx],80h
	.if ecx >= 56
		call SHA1Transform
		SHA1BURN
	.endif
	mov eax,SHA1Len
	xor edx,edx
	shld edx,eax,3
	shl eax,3
	bswap edx; \
	bswap eax; /
	mov dword ptr [SHA1HashBuf+56],edx
	mov dword ptr [SHA1HashBuf+60],eax
	call SHA1Transform
	mov eax,offset SHA1Digest	
	mov edx,[eax+0*4]
	mov ecx,[eax+1*4]
	mov esi,[eax+2*4]
	mov edi,[eax+3*4]
	bswap edx
	bswap ecx
	bswap edi
	bswap esi
	mov [eax+0*4],edx
	mov [eax+1*4],ecx
	mov [eax+2*4],esi
	mov [eax+3*4],edi
	mov edx,[eax+4*4]
	bswap edx
	mov [eax+4*4],edx
	ret
SHA1Final endp

end
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ