Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1154 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Turbo Pascal 7] Optimisation trunc() et écriture dans le code

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Turbo Pascal 7] Optimisation trunc() et écriture dans le code

n°1610415
Mackila
Posté le 10-09-2007 à 23:28:32  profilanswer
 

Salut à tous,
 
J'suis tombé sur un truc à la con avec la bibliothèque standard du TP7, j'aimerais savoir si vous en avez déja fait l'expérience ou si vous avez des infos la dessus...
 
Environnement :
Programme en Turbo Pascal 7 (sous DOS, à l'ancienne).
 
Problème :
Modification du code
 
Description :
J'écris un programme qui doit réaliser des traitements sensibles (système de sécurité). J'aimerais surveiller l'intégrité de mon programme. Solution : lors du chargement, parcourir le code du programme, en faire un hash quelconque (ou se le copier en ninja en mémoire), et recalculer périodiquement ce hash (ou comparer la version executée avec la version sauvegardée). Problème : différence systématique entre le code chargé et le code exécuté. Après investigation aujourd'hui, on dirait que la fonction trunc modifie le code de l'appellant :o !
 
Question :
Est ce que quelqu'un a une doc ou une référence sur les unités livrées avec le TP7 et sur leur capacité à modifier dynamiquement leur code ou celui de leurs appellants, car ca me gène légèrement, comme comportement :o !
 
 
Merci !
 

mood
Publicité
Posté le 10-09-2007 à 23:28:32  profilanswer
 

n°1610592
olivthill
Posté le 11-09-2007 à 13:37:00  profilanswer
 

lors du chargement

Chargement par qui ? Chargement vers quelle destination ?
 
En supposant que ce serait un chargement en mémoire fait par le système d'xploitation, il n'est pas du tout étonnant que le hash ne donne pratiquement jamais deux fois la même chose, car les programmes sont chargés là où il y a de la mémoire disponible, et c'est rarement au même endroit qu'une fois précédente. Toutes les adresses sont recalculées par le loader en se servant de la table que l'éditeur de liens a mis dans l'executable. (Je connais un peu le sujet, car j'ai écrit un éditeur de liens pour DOS disponible su mon site).

n°1610753
Mackila
Posté le 11-09-2007 à 19:09:53  profilanswer
 

Le hash de référence est calculé par le programme lui même, après le chargement par le système. Donc pas de problème à ce niveau (spas un hash précalculé).
Et sinon j'ai viré les appels à trunc (cay du caca de faire un calcul en flottant pour avoir juste un pauv' modulo, de toute facon :o ), et isolé les unités chiantes qui modifient ce qui est contenu dans leur segment de code (BGIFONT :o ) et celles dont je ne sais pas ce qu'elles peuvent faire (en général : toutes celles dont j'ai pas les sources :P ).
Résultat : ca marche, le programme vérifie son intégrité (code) à peu pres toutes les secondes, manque plus que faire un truc pour vérifier les données sensibles (plus chaud, la, je sais pas s'il me reste le temps de faire le con avec le descripteur de segment pour intercepter tous les accès mémoire, j'suis même pas sur que ca marche en mode réel :whistle: ...)
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Turbo Pascal 7] Optimisation trunc() et écriture dans le code

 

Sujets relatifs
[IE] Récupérer le code source d'une page dynamique en live[log4j] optimisation: tester si niveau actif avant de logger?
Recherche code Borland sous xp carte parallele/i2cCode facon Spoiler
Code en vb dans Excel -> comment faire un .exeAfficher du code en couleur dans une page HTML
FckEditor : Nettoyer le codeLe code PHP ne s'affiche plus (tags PHP reconnus comme tags HTML)
Débutant: conversion idée->codeVisual 2005 - faire un exe avec le code source d'un prog d'echecs
Plus de sujets relatifs à : [Turbo Pascal 7] Optimisation trunc() et écriture dans le code


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR