2.2.4. Espaces d'adressage explique ceci:
Code : Tout sélectionner
repeat $-$$
load a byte from $$+%-1
store byte a xor c at $$+%-1
end repeat
Porte OU eXclusive (En anglais : XOR Gate) a écrit : 1+1=2 impair+impair=pair
1+2=3 impair+pair=impair
2+3=5 pair+impair=impair
3+3=6 pair+pair=pair
Conditionne la non-parité d'une addition.
En effet, une somme est impaire si, exclusivement l'un ou l'autre de ses antécédants est impair.
Ajout 26 Août 2015
[ ! ] firace sur le site EN pointe l'article sur 'load' et 'store'
Ajout 23 Août 2015
/!\ macros 'load' et 'store' non identifiées
Je pense que ce sont des perles conçues par Fred, mais je n'ai demandé aucune confirmation, vu qu'il bosse à fond.
Cryptage /!\ /!\ /!\ FACTICE proche de l'algo
"a" = "b", "b" = "c", "c" = "d", etc... en terme de simplicité
Source : Simple preprocessor for string obfuscation
Auteur du sujet : Keya
Auteur du source : User_Russian
Code : Tout sélectionner
!macro ppublic name{
!if name eq _SYS_StaticStringEnd
!repeat $-_SYS_StaticStringStart
!load zczc from _SYS_StaticStringStart+%-1
!store zczc xor 137 at _SYS_StaticStringStart+%-1
!end repeat
!end if
!public name}
!public fix ppublic
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!mov edi,_SYS_StaticStringStart
!mov ecx,_SYS_StaticStringEnd-_SYS_StaticStringStart
!@@:
!xor byte[edi],137
!inc edi
!dec ecx
CompilerElse
!mov rdi,_SYS_StaticStringStart
!mov rcx,_SYS_StaticStringEnd-_SYS_StaticStringStart
!@@:
!xor byte[rdi],137
!inc rdi
!dec rcx
CompilerEndIf
!jnz @b
MessageRequester("test test test", "Find this string in exe file")