рдХрдиреНрд╡рд░реНрдЯ ASCII рдбреЛрдВрдЧрд▓ рдХреЛ рд╣реЗрдХреНрд╕

рд╕рдмрдХреЗ рд▓рд┐рдП рджрд┐рди рдЕрдЪреНрдЫрд╛ рд╣реЛред

рдРрд╕рд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╣реБрдЖ рд╣реИ рдХрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрд╕рдмреАрдЖрдИрдПрд╕ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдЫреЛрдЯреА рд╣реЛрд▓реНрдбрд┐рдВрдЧ рдХреЗ рд╕рдВрдЧрдардиреЛрдВ рдХреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХреБрдВрдЬреА рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд┐рдВрдбреЛрдЬрд╝ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЖрдпрд╛рдд рдХреА рдЧрдИ рдереАред
рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдмрдирд╛рддреЗ рд╕рдордп, рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЭрд╛рдбрд╝реА рдХреЛ рдХреНрд░рд┐рдкреНрдЯреЛ-рдкреНрд░реЛ рд╢рд╛рдЦрд╛ рд╕реЗ рдЙрддрд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдПрдХ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд╕рд░реНрд╡рд░ рдкрд░, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдерд╛ рдФрд░ рд╕рднреА рдХреБрдВрдЬреА рдХреЛ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдХреНрд░рд┐рдкреНрдЯреЛ-рдкреНрд░реЛ рдореЗрдВ рдмрд╛рд╣рд░реА рдбреНрд░рд╛рдЗрд╡ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдЕрдм рдЯрд░реНрдорд┐рдирд▓ рд╕рд░реНрд╡рд░ рдкрд░ рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХреБрдВрдЬреА рд╡рд╛рд▓реЗ рдЗрд╢рд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдЖрдкрдХреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ ASCII рдХреБрдВрдЬреА рдХреЛ 16 рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╢рд╛рдпрдж рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ "Google" рдХреИрд╕реЗ рдмрдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреЛрдИ рднреА рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреИрд╢ рдкрд░ рдмрдирд╛рдИред
рд╢рд╛рдпрдж рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред

рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╡рд░рдгред
рдЪрд╛рдмрд┐рдпрд╛рдБ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИрдВ - [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Crypto Pro \ Settings \ Users \ SID-user \ Keys \ Key-name]

рдкреНрд░рдореБрдЦ рд╕рдВрд░рдЪрдирд╛ рдЕрдирд▓реЛрдб рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╢рд╛рдЦрд╛ рдореЗрдВ:
"name.key" = hex: 10, d5 ...
" header.key "= рд╣реЗрдХреНрд╕: 20,42,19, ...
" primary.key "= рд╣реЗрдХреНрд╕:
30,12" masks.key "= рд╣реЗрдХреНрд╕: 30,23
" primary2.key "= рд╣реЗрдХреНрд╕: 30,12 ...
" masks2 .key "= рд╣реЗрдХреНрд╕: 30,56,10 ...

рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, keys.reg) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд╣рд╛рдВ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдереА рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдХреАрдЬ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рд╣реИред рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ 6 рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА - name.key, рд╢реАрд░реНрд╖ рд▓реЗрдЦ редkey, Primary.key, Primary2.key, masks.key, masks2.keyред

#!/bin/bash

path=./
temp=$path/temp

file[1]="name.key"
file[2]="masks.key"
file[3]="masks2.key"
file[4]="primary.key"
file[5]="primary2.key"
file[6]="header.key"

if [ ! -d "$temp" ]; then 
    mkdir "$temp"
fi

if [ ! -d "$path/keys" ]; then 
    mkdir "$path/keys"
fi

# CR to LF.     UNIX (  LF,  CR)
dos2unix -n -q $1 $temp/$1

#       
cat $temp/$1 | grep -E -o 'Keys\\\w+]' | sed -E 's/Keys\\//; s/]//' > $temp/keysname

while read key
   do
     #          
     cat $temp/$1 | sed -e '/./{H;$!d;}' -e "x;/$key]/!d" | sed -n "/$key]/!p" > $temp/$key
	
	#   (name, primary, masks, header...)           
	if ! [ -d "$path/keys/$key" ]; then
              mkdir "$path/keys/$key"
	fi

	for i in {1..6}; 
   	 do 
   	 hex=$(cat $temp/$key | tr -d '\n' | sed -E 's/\\//g; s/ //g; s/\$//g' | grep -E -o "${file[$i]}\"=hex:(\w{2},?)+?" | sed -E "s/${file[$i]}\"=hex://; s/,//g" | sed -E 's/\w{2}/\\x&/g')
   	 echo -e -n "$hex" > "$path/keys/$key/${file[$i]}"

	 # LF to CR ??? 
	 # sed 's/$'"/`echo \\\r`/" "$path/keys/${file[$i]}" > "$path/keys/${file[$i]}"
	done
done < $temp/keysname

#   
if [ -d "$temp" ]; then 
   rm -rf "$temp"
fi

exit 0

Source: https://habr.com/ru/post/hi382285/


All Articles