- 论坛徽章:
- 3
|
[ 本帖最后由 李满满 于 2014-09-13 02:18 编辑 ]
学生党:飘过~大家验证一下吧~**玩耍中....
[root@b10-1b ~]# cat yhsafe.sh
#!/bin/bash
#just for fun - [url]www.yhsafe.net[/url]
hdpfile=${1}
#原始KEY
org_key=$(ifconfig |awk '/eth0/{l=split($0,M,":");print M[l-2]M[l-1]M[l]}')
#简单判断
if [ $# -ne 1 ];then
echo -e "\033[31;40mUsage:./yhsafe.sh <dumpfilename>\033[0m"
exit $?
fi
#AWK取异或值
function gck_key(){
for ((x=0;x<=4;x+=2))
do
res_yhf=`awk -vOK=${1:$x:2} -vCK=${2:4-$x:2} 'BEGIN{printf("%X",res=(xor(OK,CK)<10)?"0"(xor(OK,CK)):xor(OK,CK))}'`
sum_key=${sum_key}${res_yhf}
done
echo ${sum_key}
}
#计算16进制DUMP重算值
function gok_key(){
echo $(echo $(((16#${1}*16#123456+16#ABCD)%16#800000))|awk '{printf("%x",$0)}')
}
#简单循环3人组
for x_key in `cat ${hdpfile}| hexdump -C|cut -c10-60|sed -r 's/^ //;s/[[:space:]]+/ /g'|xargs -n 3|tr -d " "`
do
#记录最终KEY字符串
fnl_key=${fnl_key}$(gck_key ${org_key} ${x_key})
#每次循环取下次DUMP重算KEY
org_key=$(gok_key ${x_key})
done
#简单输出测试
echo -e "\033[31;40mEncry--------------------------------------------------------------------------STA\033[0m"
echo "obase=2;${fnl_key}"|bc
echo -e "\033[31;40mEncry--------------------------------------------------------------------------End\033[0m"
测试:
[root@b10-1b opt]# ./yhsafe.sh /root/.bashrc
Encry--------------------------------------------------------------------------STA
11110001101000110000111011011110111110001110110011100010100000110000\
00001010111110110101001100111001101011110001011100100001100110010110\
10011001110101010101010111101001111100010000110100110010010110011100\
00011100000001101100111000101001011010001001110011000101101010100111\
01010010101110000011011111110101000111111101111010110101101000011010\
10000101101111100111000011010001111000111110111010001000010110110011\
01011000011101101010001000110110111010110110011011011111000110000011\
10010000100111011010110001101001000111101011111000000100010011110110\
00000011001001110110011001010011010010011111001110111110001010001101\
00110000011111000010011011101101101101101101001000101111100000011100\
11101101000000000111000000001001101011001101110101110101001001011100\
10000111010000100101110100101010010001010100001111000101010100100000\
01011100011111011000100101100010011011100011000001011100101110011101\
11111101001111101110001001100110110000001000110111101101100001100011\
00101111100011011100000010111011001110100000001011100111011101111110\
00011101000
Encry--------------------------------------------------------------------------End
[root@b10-1b opt]# |
|