|
@ -17,12 +17,11 @@ cd signed |
|
|
|
|
|
|
|
|
echo "Found $(ls *.exe | wc -w) files to verify." |
|
|
echo "Found $(ls *.exe | wc -w) files to verify." |
|
|
for signed in $(ls *.exe); do |
|
|
for signed in $(ls *.exe); do |
|
|
echo $signed |
|
|
|
|
|
mine="../dist/$signed" |
|
|
mine="../dist/$signed" |
|
|
out="../stripped/$signed" |
|
|
out="../stripped/$signed" |
|
|
size=$( wc -c < $mine ) |
|
|
size=$( wc -c < $mine ) |
|
|
# Step 1: Remove PE signature from signed binary |
|
|
# Step 1: Remove PE signature from signed binary |
|
|
osslsigncode remove-signature -in $signed -out $out |
|
|
osslsigncode remove-signature -in $signed -out $out > /dev/null 2>&1 |
|
|
# Step 2: Remove checksum and padding from signed binary |
|
|
# Step 2: Remove checksum and padding from signed binary |
|
|
python3 <<EOF |
|
|
python3 <<EOF |
|
|
pe_file = "$out" |
|
|
pe_file = "$out" |
|
@ -37,16 +36,15 @@ l = len(binary) |
|
|
n = l - size |
|
|
n = l - size |
|
|
if n > 0: |
|
|
if n > 0: |
|
|
assert binary[-n:] == bytearray(n) |
|
|
assert binary[-n:] == bytearray(n) |
|
|
print("removing %d null bytes"% n) |
|
|
|
|
|
binary = binary[:size] |
|
|
binary = binary[:size] |
|
|
with open(pe_file, "wb") as f: |
|
|
with open(pe_file, "wb") as f: |
|
|
f.write(binary) |
|
|
f.write(binary) |
|
|
EOF |
|
|
EOF |
|
|
chmod +x $out |
|
|
chmod +x $out |
|
|
if [ ! $(diff $out $mine) ]; then |
|
|
if [ ! $(diff $out $mine) ]; then |
|
|
echo "Success!" |
|
|
echo "Success: $signed" |
|
|
gpg --sign --armor --detach $signed |
|
|
#gpg --sign --armor --detach $signed |
|
|
else |
|
|
else |
|
|
echo "failure" |
|
|
echo "Failure: $signed" |
|
|
fi |
|
|
fi |
|
|
done |
|
|
done |
|
|