Jump to content

[PHP] Hex editor (?)

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
2 replies to this topic

#1
luruke

luruke

    Newbie

  • Members
  • PipPip
  • 26 posts
<?php


class Hex

{


   var $file;

   var $hex;


   function __construct($file)

   {

      $this->file = $file;

   }

   

   

   function gethex()

   {

      $handle = fopen($this->file, 'r') or die('Hai i permessi?');

      

         while(!feof($handle))

         {

            foreach(unpack('C*',fgets($handle)) as $dec)

            {

               $tmp = dechex($dec);

               $this->hex[] .= strtoupper(str_repeat('0',2-strlen($tmp)).$tmp);   

            }

         }

      

      return join($this->hex);

   }

   

   function writehex($hexcode)

   {

      

      foreach(str_split($hexcode,2) as $hex)

      {

         $tmp .= pack('C*', hexdec($hex));

      }

      

         $handle = fopen($this->file, 'w+') or die('Hai i permessi?');

         fwrite($handle, $tmp);

      

   }

      

}


?>

I've tested the class with:
<?php

include('hex.class.php');


   $obj = new Hex('test');

   $hexcode = $_POST['hexcode'];

   

      if($hexcode)

      {

         $obj->writehex(trim($hexcode));

         print '<h1>0k.</h1>';   

      }

?>


   <center>

      <form method='POST' action=''>

         <textarea name='hexcode' cols='80' rows='40'>

            <?=trim($obj->gethex())?>

         </textarea>

         <br />

         <input type='submit' value='Send' />

      </form>

   </center>

"test" is an unix executable file (an hello world written in C), i've tested changed the text of hello world.

#2
Orjan

Orjan

    Writes binary right handed and hex left handed

  • Moderators
  • 3,298 posts
And what happens? if you reopen the file, is the change left?
__________________________________________
I study Information Systems at Karlstad University when I'm not on CodeCall

#3
luruke

luruke

    Newbie

  • Members
  • PipPip
  • 26 posts

orjan said:

And what happens? if you reopen the file, is the change left?

yep, u can modify the hexadecimal code of executable, it's useful when you wanna bypass application (view the reverse engineer)