Skip to content

Latest commit

 

History

History
327 lines (292 loc) · 4.92 KB

README.md

File metadata and controls

327 lines (292 loc) · 4.92 KB

// TODO:

  • use the GNU math library for precise maths functions

  • test xorshiro implementation in terms of efficency and randomness, DieHard tests will be used for testing it.

  • add internal maths functions for derivative, integrals, differentials, matrix, field and spaces manipulation.

  • add internal statistics function: Markov chains ecc..

  • add new variable type: !var and §var, respectively the first is a logic proposition which can be considered over an Hilbert assumption (postulates) while the second is over Łukasiewicz logic (no postulates).

  • add a new conception of PerlIO input layer: it will be considered a space, so writing an operation on it will produce a result, the main advantage is that we can do multiple operations in multiple spaces in real-time.

  • toggle unnecessary functions: sockets and shmget family.

  • secure strings output [working on it]

  • try to remain under the Kb size, maximun 1 MB

  • togle all system dependent access (won't access to /dev/null or similar) everything will depend only by the code.

  • test language over SPARC and MIPS architectures, [ARM and I386 works]

  • make it non possible to reverse-engineering

  • toggle some flag like "-w" or "-d"

  • (maybe?) add some lower level assembly part for simulate a more in-depth shift register, this will increase the size

  • find some way for increase the speed (for now is speeder than perl && python due its heavy optimization)

  • toggle print function in favour of "printf" (??)

  • toggle other useless functions

  • find a better rappresentation for matrix

  • reverse engineer UPX program for deleting the copyright strings inside the packed file

  • add an elegant way for using summatory, xorratory ecc..

  • add Shannon's entropy and differential entropy functions

  • change sleep function in ms

the folder "t" contains the future test which will be made after the compilation, for now when we will test the program in an embedded machine, we won't compile the interpreter in the machine, we will have different sets of it depending over the architecture

DOCUMENTATION:

the code uses the PERL.H api, a good documentation can be found here:

the all-in-one pdf can be found under ./documentation/documentation.pdf

the external libraries documents are:

REMEMBER THAT: no-one uses anymore microperl, it is based on miniperl but it cannot support some of its feature, the main idea of the project is to create a fast language for cryptoanalysis, usefull in a military context.

THE CODE MUST REMAIN SECRET AS THE PROJECT ITSELF

SUPPORTED FUNCTIONS

these are the supported strings which are tokenized by the actual interpreter

AUTOLOAD
BEGIN
UNITCHECK
CORE
DESTROY
END
INIT
CHECK
abs
accept
alarm
and
atan2
bind
binmode
bless
break
caller
chdir
chmod
chomp
chop
chown
chr
chroot
close
closedir
cmp
connect
continue
cos
crypt
dbmclose
dbmopen
default
defined
delete
die
do
dump
each
else
elsif
endgrent
endhostent
endnetent
endprotoent
endpwent
endservent
eof
eq
eval
exec
exists
exit
exp
fcntl
fileno
flock
for
foreach
fork
format
formline
ge
getc
getgrent
getgrgid
getgrnam
gethostbyaddr
gethostbyname
gethostent
getlogin
getnetbyaddr
getnetbyname
getnetent
getpeername
getpgrp
getppid
getpriority
getprotobyname
getprotobynumber
getprotoent
getpwent
getpwnam
getpwuid
getservbyname
getservbyport
getservent
getsockname
getsockopt
given
glob
gmtime
goto
grep
gt
hex
if
index
int
ioctl
join
keys
kill
last
lc
lcfirst
le
length
link
listen
local
localtime
lock
log
lstat
lt
m
map
mkdir
msgctl
msgget
msgrcv
msgsnd
my
ne
next
no
not
oct
open
opendir
or
ord
our
pack
package
pipe
pop
pos
print
printf
prototype
push
q
qq
qr
quotemeta
qw
qx
rand
read
readdir
readline
readlink
readpipe
recv
redo
ref
rename
require
reset
return
reverse
rewinddir
rindex
rmdir
s
say
scalar
seek
seekdir
select
semctl
semget
semop
send
setgrent
sethostent
setnetent
setpgrp
setpriority
setprotoent
setpwent
setservent
setsockopt
shift
shmctl
shmget
shmread
shmwrite
shutdown
sin
sleep
socket
socketpair
sort
splice
split
sprintf
sqrt
srand
stat
state
study
sub
substr
symlink
syscall
sysopen
sysread
sysseek
system
syswrite
tell
telldir
tie
tied
time
times
tr
truncate
uc
ucfirst
umask
undef
unless
unlink
unpack
unshift
untie
until
use
utime
values
vec
wait
waitpid
wantarray
warn
when
while
write
x
xor
y
recvmsg

probably the "use", "*ctl", "*socket" will be deleted in favour of other functions described up.