Compare commits
3 Commits
eb01334c91
...
f19fefe41d
Author | SHA1 | Date | |
---|---|---|---|
|
f19fefe41d | ||
|
2d3bd8ed8b | ||
|
e4a3917481 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -24,6 +24,15 @@ code/no-op
|
||||
code/get-signal
|
||||
code/fifo-tx
|
||||
code/fifo-rx
|
||||
code/send-osc
|
||||
code/listen-osc
|
||||
code/plugiciel.so
|
||||
code/appelant
|
||||
code/flydraw.png
|
||||
code/flydraw.gif
|
||||
|
||||
|
||||
A
|
||||
|
||||
D
|
||||
code/flydraw.gif
|
||||
|
58
chap/OSC.tex
58
chap/OSC.tex
@ -19,7 +19,25 @@ allons voir maintenant.
|
||||
\section{oscdump \& oscsend}
|
||||
\index{oscdump}\index{oscsend}
|
||||
|
||||
Ecouter :
|
||||
|
||||
\textbf{Envoyer :}
|
||||
|
||||
Pour envoyer, il faut bien définir une destination. Une fois
|
||||
de plus, le couple IP adresse/port est utilisé. Ce sont les
|
||||
deux premiers paramètres.
|
||||
|
||||
\begin{verbatim}
|
||||
tth@debian:~$ oscsend localhost 1664 /tmp/kmem is 61 'meg, efface !'
|
||||
tth@debian:~$
|
||||
\end{verbatim}
|
||||
|
||||
La chaine \texttt{is} que vous voyez dans la ligne de commande
|
||||
décrit le type des paramètres qui suivent~:
|
||||
\texttt{i} est pour un integer et \texttt{s} pour une
|
||||
chaine (notez les simples quotes pour passer les caractères
|
||||
speciaux du shell).
|
||||
|
||||
\textbf{Ecouter :}
|
||||
|
||||
\begin{verbatim}
|
||||
tth@debian:~$ oscdump 1664
|
||||
@ -28,23 +46,45 @@ tth@debian:~$ oscdump 1664
|
||||
tth@debian:~$
|
||||
\end{verbatim}
|
||||
|
||||
Envoyer :
|
||||
|
||||
\begin{verbatim}
|
||||
tth@debian:~$ oscsend localhost 1664 /tmp/kmem is 61 'meg, efface !'
|
||||
tth@debian:~$
|
||||
\end{verbatim}
|
||||
% ------------------------------------------------
|
||||
|
||||
\section{Exemple de code}
|
||||
|
||||
Ecouter :
|
||||
\textbf{Ecouter :}
|
||||
|
||||
Attention, là, nous arrivons sur un domaine plus
|
||||
hardu\footnote{Un beau néoligisme, n'est-il pas ?}.
|
||||
En effet, la mécanique interne de \texttt{liblo}
|
||||
utilise un thread d'écoute qui appelle des
|
||||
\textsl{callbacks} préalablement "accrochés",
|
||||
\textsl{hooked} en vrai langue.
|
||||
|
||||
\lstinputlisting[language=c]{code/listen-osc.c}
|
||||
|
||||
Envoyer :
|
||||
\textbf{Envoyer :}
|
||||
|
||||
Cette partie là est beaucoup plus simple.
|
||||
|
||||
\lstinputlisting[language=c]{code/send-osc.c}
|
||||
|
||||
J'avoue ne pas encore savoir ce que veut bien dire la
|
||||
valeur de retour.
|
||||
|
||||
% ------------------------------------------------
|
||||
\section{En Perl} \index{Perl}
|
||||
|
||||
\begin{verbatim}
|
||||
use Net::OpenSoundControl::Client;
|
||||
|
||||
$client = Net::OpenSoundControl::Client->new(
|
||||
Host => $target, Port => $port)
|
||||
or die "Could not start client: $@\n";
|
||||
|
||||
$client->send(['/proc/kcore', 'i', 61, 's', "bla"]);
|
||||
\end{verbatim}
|
||||
|
||||
% ------------------------------------------------
|
||||
|
||||
\section{Autres logiciels}
|
||||
|
||||
Beaucoup d'autres logiciels peuvent être controlés par OSC, ou
|
||||
|
@ -6,18 +6,42 @@ Quelques notes en vrac sur divers logiciels\dots
|
||||
|
||||
\section{Flydraw}\index{Flydraw}
|
||||
|
||||
Comment faire des dessins en écrivant des lignes de codes ?
|
||||
|
||||
\begin{quote}
|
||||
flydraw is a drawing tool based on an interpreter which parses a
|
||||
language featuring rich graphic primitives; it uses libgd to output
|
||||
GIF, JPEG, or PNG\index{PNG} files.
|
||||
\end{quote}
|
||||
|
||||
% ------------------------------------------------
|
||||
\lstinputlisting{code/dessiner.fly}
|
||||
|
||||
Pour le moment, les résultats ne sont pas encourageants~:
|
||||
\begin{verbatim}
|
||||
tth@fubar:~/Documents/TetaTricks/code$ flydraw < dessiner.fly
|
||||
bad_parms -100000
|
||||
tth@fubar:~/Documents/TetaTricks/code$
|
||||
\end{verbatim}
|
||||
|
||||
Mais en s'obstinant un peu au \textsl{cargocult}, il
|
||||
s'avère que la documentation et le code semble ne sont
|
||||
pas d'accord. Et les messages d'erreur trop
|
||||
cryptiques pour moi. Donc, on y arrive.
|
||||
|
||||
\begin{figure}[h]
|
||||
\begin{center}
|
||||
\includegraphics[scale=0.75]{code/flydraw}
|
||||
\caption{Flydraw}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
%====================================================================
|
||||
|
||||
\section{Povray}\index{POVray}
|
||||
|
||||
\textbf{Persistence Of Vision} est un logiciel de raytracing qui
|
||||
existe depuis plus de trente ans.
|
||||
existe depuis plus de trente ans. C'est un lointain descendant
|
||||
de DKBtrace.
|
||||
|
||||
\subsection{Caméra}
|
||||
|
||||
@ -69,6 +93,25 @@ la commande\texttt{tail} au début du script. Ensuite les deux clauses
|
||||
coordonnées X et Z, dans le repère POVray, qui n'est pas le même que
|
||||
celui de Gnuplot.
|
||||
|
||||
% ------------------------------------------------
|
||||
|
||||
\subsection{Trucs à voir}
|
||||
|
||||
\begin{verbatim}
|
||||
|
||||
#declare VIRGINIA =
|
||||
transform{
|
||||
matrix < 1, 1, 0,
|
||||
0, 1, 0,
|
||||
0, 0, 1,
|
||||
0, 0, 0 >
|
||||
}
|
||||
|
||||
box{0,1
|
||||
transform{VIRGINIA}
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
|
||||
% ------------------------------------------------
|
||||
|
||||
|
@ -185,7 +185,12 @@ C'est clairement aussi un outil dédié au voyeurisme à distance,
|
||||
puisque il permet de découvrir, avec plus ou moins de détails,
|
||||
les services exposés à l'extérieur par une machine distante.
|
||||
|
||||
Comment scanner un /24 pour y découvrir les machines ?
|
||||
|
||||
\begin{verbatim}
|
||||
# nmap -sS 192.168.42.0/24
|
||||
\end{verbatim}
|
||||
\texttt{-sS} = TCP SYN scan.
|
||||
|
||||
% ==============================================================
|
||||
\section{netcat}
|
||||
|
@ -1,7 +1,8 @@
|
||||
\chapter{Le Shell}\index{shell}
|
||||
\label{chap:shell}
|
||||
|
||||
Le \texttt{shell} est le coquillage qui isole le MC/P des yusers.
|
||||
Le \texttt{shell} est le coquillage qui isole le
|
||||
MC/P\footnote{Master Control Program} des yusers.
|
||||
En gros, hein, je vais simplifier, et me limiter aux
|
||||
bricolages constructifs et/ou amusant. Il y aura du gore\index{gore}
|
||||
aussi.
|
||||
@ -12,7 +13,7 @@ choses en commun.
|
||||
|
||||
Nous allons nous concentrer sur le \textsl{Bourne again shell}.
|
||||
aka \texttt{bash} qui est peut-être le plus répandu. Mais il
|
||||
en exuste d'autres : sh, ksh, ash, zsh\dots
|
||||
en existe d'autres : sh, ksh, ash, zsh\dots
|
||||
|
||||
% ==============================================================
|
||||
|
||||
|
@ -14,9 +14,11 @@ other attacks. Additionally, OpenSSH provides secure tunneling
|
||||
capabilities and several authentication methods, and supports
|
||||
all SSH protocol versions.}
|
||||
|
||||
% --------------------------------------------
|
||||
|
||||
\section{X11 forwarding}\index{X11}
|
||||
|
||||
|
||||
Option \texttt{-X} et ses implications sur la sécurité.
|
||||
|
||||
\section{sshfs}
|
||||
\index{sshfs}
|
||||
@ -51,5 +53,8 @@ les bons droits sur \texttt{/dev/fuse*} et un
|
||||
La semaine prochaine, nous verrons le \textit{mapping} entre les
|
||||
UID\index{UID} locaux et distants.
|
||||
|
||||
% --------------------------------------------
|
||||
|
||||
\section{Port forwarding}
|
||||
|
||||
% https://tookmund.com/2021/10/ssh-port-forwarding
|
||||
|
@ -333,6 +333,12 @@ Voilà, c'est tout pour le moment.
|
||||
|
||||
%====================================================================
|
||||
|
||||
\section{Airtime} \index{Airtime}
|
||||
|
||||
Cette partie est écrite pendant l'installation de Airtime
|
||||
dans \textsf{Radio-Parasite} en octobre 2021.
|
||||
|
||||
%====================================================================
|
||||
|
||||
\section{libshout}\index{libshout}\label{libshout}
|
||||
|
||||
@ -349,7 +355,8 @@ data, and prevents bad data from getting to the icecast server.
|
||||
|
||||
\lstinputlisting[language=c]{code/microcast.c}
|
||||
|
||||
|
||||
Mais il reste encore pas mal de chose importante à rajouter dans
|
||||
ce logiciel : par exemple la partie encodage.
|
||||
|
||||
%====================================================================
|
||||
|
||||
|
@ -75,3 +75,12 @@ of Code, the development continued and we are still looking for people with
|
||||
|
||||
% --------------------------------------------------------------------
|
||||
|
||||
\section{Kinect} \index{Kinect}
|
||||
|
||||
Bon, voilà un nouveau gadget ;)
|
||||
|
||||
À priori, la partie caméra RGB est gérée classiquement par v4l2,
|
||||
mais le coté spécifique, je ne sais pas qu'en faire...
|
||||
|
||||
% --------------------------------------------------------------------
|
||||
|
||||
|
@ -19,6 +19,15 @@ arguments: arguments.c Makefile
|
||||
no-op: no-op.c Makefile
|
||||
gcc -Wall $< -o $@
|
||||
|
||||
#------------- OSC -----------------------
|
||||
|
||||
osc: send-osc listen-osc
|
||||
|
||||
send-osc: send-osc.c Makefile
|
||||
gcc -Wall $< -llo -o $@
|
||||
listen-osc: listen-osc.c Makefile
|
||||
gcc -Wall $< -llo -o $@
|
||||
|
||||
#------------- IPC -----------------------
|
||||
|
||||
get-signal: get-signal.c Makefile
|
||||
@ -45,3 +54,10 @@ plugiciel.so: plugiciel.c plugiciel.h Makefile
|
||||
appelant: appelant.c plugiciel.h Makefile
|
||||
gcc -Wall $< -ldl -o $@
|
||||
|
||||
#------------- GRAPHISME --------------------
|
||||
|
||||
flydraw.png: dessiner.fly
|
||||
flydraw < $<
|
||||
convert flydraw.gif flydraw.png
|
||||
|
||||
|
||||
|
10
code/dessiner.fly
Normal file
10
code/dessiner.fly
Normal file
@ -0,0 +1,10 @@
|
||||
comment Juste un petit dessin...
|
||||
|
||||
new 640,480
|
||||
|
||||
line 10,10,300,300,red
|
||||
line 12,10,302,300,red
|
||||
line 14,10,304,300,red
|
||||
|
||||
output flydraw.gif
|
||||
|
@ -1 +1,15 @@
|
||||
/* LISTEN OSC */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <lo/lo.h>
|
||||
|
||||
#define LOCAL_PORT "9000"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
lo_server_thread st;
|
||||
|
||||
st = lo_server_thread_new(LOCAL_PORT, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1 +1,18 @@
|
||||
/* SEND OSC */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <lo/lo.h>
|
||||
|
||||
#define REMOTE_HOST "localhost"
|
||||
#define REMOTE_PORT "9000"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
lo_address loana;
|
||||
int foo;
|
||||
|
||||
loana = lo_address_new(REMOTE_HOST, REMOTE_PORT);
|
||||
foo = lo_send(loana, "/dev/kmem", "is", 61, "meg, efface !");
|
||||
fprintf(stderr, "foo %d\n", foo);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user