自修改代码(Self Modifying Code)详解(3)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

自修改代码(Self Modifying Code)详解(3)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:SQL数据库SQL教程
黑客防线网安网讯:   sh edx xor eax, eax ; Zeroing working registers xor edx, edx RepeatString: ; Byte-by-byte string-processing loop lodsb ; Reading the next byte into AL test al, al ; Has the ...

   sh edx
xor eax, eax ; Zeroing working registers
xor edx, edx
RepeatString: ; Byte-by-byte string-processing loop

lodsb ; Reading the next byte into AL
test al, al ; Has the end of the string been reached?
jz short Exit

; The value of the counter that processes 1 byte of the string
; must be choosen so that all bits are intermixed, but parity
; (oddness) is provided for the result of transformations
; performed by the XOR operation.

mov ecx, 21h
RepeatChar:
xor edx, eax ; Repeatedly replacing XOR with ADC
ror eax, 3
rol edx, 5
call $+5 ; EBX = EIP
pop ebx ; /
xor byte ptr [ebx-0Dh], 26h;
; This instruction provides for the loop.
; The XOR instruction is replaced with ADC.
loop RepeatChar
jmp short RepeatString

Exit:

xchg eax, edx ; The result of work (ser.num) in EAX
pop edx ; Restoring the registers
pop ecx
pop ebx
pop esi
retn ; Returning from the function


这个算法有点怪异--

因为不断的调用一个函数,并且给它传递同样的参数有可能产生或者一样,或者完全不同的结果!这在于用户名的长度,当函数结束的时候,如果他是odd,xor被ADC替换,如果是偶数,看起来什么都没发生.

好的,这些是全部了,我希望你最少了解一件事情,这花了我整整两小时,欢迎反馈.

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-11628-1.html
网站维护教程更新时间:2012-03-21 03:23:36  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer