summaryrefslogtreecommitdiff
path: root/other/burneye/src/regress.sh
blob: 2fbf926962f2c5b60afe571723c6e5fb852626f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh

rm -f date.*.0x* date.*.0x*.hex date.*.0x*.diff date.*.regs

# $entry = ld-linux.so.2 entry point
entry=`objdump -f /lib/ld-linux.so.2 | \
	grep "start address" | cut -d ' ' -f3 | \
	sed "s/0x0000/0x4000/g"`

debug/memdump $entry ./date.eye
debug/memdump $entry ./date.upx

clear

for file in date.eye.0x*
do
	upx_file=`echo $file | sed s/eye/upx/`
	if [ -f $upx_file ]; then
		if cmp $file $upx_file
		then
			echo $file, $upx_file are identical
		else
			echo $file, $upx_file are different, analyzing

			hexdump < $file > $file.hex
			hexdump < $upx_file > $upx_file.hex
		fi
	else
		echo "$upx_file does not exist."
	fi
done

if ls date.eye.0x*.hex >/dev/null 2>/dev/null
then
for file in date.eye.0x*.hex
do
	upx_file=`echo $file | sed s/eye/upx/`
	linecount=`diff -u $file $upx_file | wc | awk '{ print $1 }'`
	if [ $linecount -gt 20 ]
	then
		echo "$file, $upx_file, more than 20 lines different"
		echo "   dumping to $file.diff"
		diff -u $file $upx_file > $file.diff
	else
		echo "$file, $upx_file, differences:"
		diff -u $file $upx_file > $file.diff
	fi
done
fi

if cmp date.eye.regs date.upx.regs
then
	echo "registers are identical"
else
	echo "registers are different (first eye, then upx):"
	diff -C 0 date.eye.regs date.upx.regs | grep "^!"
fi