Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #./cmp_bytes PoC
- #Author: hecky
- #Web: Neobits.org
- #Twitter: @hecky
- #Mail: [email protected]
- file1=$1
- file2=$2
- if [ $(echo $#) -ne 2 ]; then echo -e "./cmp_bytes.sh file1 file2\n\n\t<<< \e[1;31m@hecky\e[m from \e[1;36mNeobits.org\e[m >>>" ; exit ;fi
- declare -a bytes1=( $(xxd -p "$file1" | fold -2 ) )
- declare -a bytes2=( $(xxd -p "$file2" | fold -2 ) )
- let size1=$(du -b "$file1" | cut -f1)
- let size2=$(du -b "$file2" | cut -f1)
- if [ $size1 -ne $size2 ]; then
- alert="different"
- if [ $size1 -gt $size2 ]; then
- let size=$size1
- else
- let size=$size2
- fi
- else
- #Just for fun :P
- let size=$((($size1+$size2)/2))
- fi
- if [[ -a $file1".hex" && -a $file2".hex" ]]; then rm -rf $file1".hex" $file2".hex" ;fi
- let count=0
- if [[ $alert != "different" ]];then
- for ((i=0;i<$size;i++));do
- if [ "${bytes1[$i]}" != "${bytes2[$i]}" ]; then
- let $((count++))
- echo -e "Byte \e[1;36m"$(($i+1))"\e[m:\t"${bytes1[$i]}" - "${bytes2[$i]}
- (printf $(echo -n "\x"${bytes1[$i]}) >> $file1".hex") &> /dev/null
- (printf $(echo -n "\x"${bytes2[$i]}) >> $file2".hex") &> /dev/null
- fi
- done
- else
- for ((i=0;i<$size;i++));do
- if [ "${bytes1[$i]}" != "${bytes2[$i]}" ]; then
- let $((count++))
- echo -e "Byte \e[1;36m"$(($i+1))"\e[m:\t"${bytes1[$i]}" - "${bytes2[$i]}
- if [[ ${bytes1[$i]} == "" ]];then
- (printf $(echo -n "\x"${bytes2[$i]}) >> $file2".hex") &> /dev/null
- elif [[ ${bytes2[$i]} == "" ]];then
- (printf $(echo -n "\x"${bytes1[$i]}) >> $file2".hex") &> /dev/null
- else
- (printf $(echo -n "\x"${bytes1[$i]}) >> $file1".hex") &> /dev/null
- (printf $(echo -n "\x"${bytes2[$i]}) >> $file2".hex") &> /dev/null
- fi
- fi
- done
- fi
- echo -e "\n\e[1;4;31m$count\e[m bytes diferentes"
- echo -e "\nSe han guardado los bytes diferentes en \e[1;33m$file1.hex\e[m y \e[1;33m$file2.hex\e[m\n\n\t<<< \e[1;31m@hecky\e[m from \e[1;36mNeobits.org\e[m >>>"
Advertisement
Add Comment
Please, Sign In to add comment