1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
format PE console 5.0
include 'include/windows/win32a.inc'
;--------------------------------------------------
section '.text' code readable executable
;--------------------------------------------------
entry $
mov edi,texte
call strlen
mov [texte_len],ecx
begin:
mov esi,modifier
add esi,dword [modnum]
cmp byte [modnum],10
jnz @f
xor byte [modnum],10
@@:
mov edi,mod_addr
xor al,al
not al
@@:
inc al
add edi,4
cmp byte [esi],al
jnz @b
push dword [edi]
mov esi,texte
mov edi,txtbuf
mov ecx,[texte_len]
@re:
mov dl,4
@@:
mov al,[esi]
inc esi
ror eax,8
dec dl
jnz @b
jmp dword [esp]
@store:
mov [edi],eax
add edi,4
sub ecx,4
jnz @re
inc byte [modnum]
cinvoke printf,forms,txtbuf
cinvoke puts,crlf
cinvoke Sleep,1000
dec [nbrloop]
jnz begin
invoke ExitProcess,0
mod1:
rol ax,8
jmp @store
mod2:
rol eax,16
jmp @store
mod3:
rol ax,8
rol eax,16
jmp @store
mod4:
rol eax,16
rol ax,8
jmp @store
mod5:
rol ax,8
rol eax,16
rol ax,8
jmp @store
strlen:
xor ecx,ecx
xor al,al
@@:
inc edi
inc ecx
cmp byte [edi],al
jnz @b
ret
;--------------------------------------------------
section '.data' data readable writeable
;--------------------------------------------------
txtbuf rb 1024
texte db 'A table is a form of furniture with a flat horizontal upper surface used to support objects of interest, for storage, show, and/or manipulation. The surface must be held stable; for reasons of simplicity, this is usually done by support from below by either a column, a "base", or at least three columnar "stands". In special situations, table surfaces may be supported from a nearby wall, or suspended from above. wikipedia',0
texte_len dd 0
mod_addr dd 0,@store,mod1,mod2,mod3,mod4,mod5
modifier db 0,1,2,3,4,5,4,3,2,1,0
modnum dd 0
nbrloop db 11
crlf db 13,10,0
forms db '%s',10,0
;--------------------------------------------------
section '.idata' import data readable writeable
;--------------------------------------------------
library kernel32,'kernel32.dll',\
msvcrt,'msvcrt.dll',\
user32,'user32.dll'
include 'include/windows/api/kernel32.inc'
include 'include/windows/api/user32.inc'
import msvcrt,\
printf,'printf',\
puts,'puts' |
Partager