
# Copyright (C) 1997 Farrell McKay
# All rights reserved.
#
# This file is part of the Fortify distribution, a toolkit for
# upgrading the cryptographic strength of the Netscape Navigator
# web browser, authored by Farrell McKay.
#
# This toolkit is provided to the recipient under the
# following terms and conditions:-
#   1.  This copyright notice must not be removed or modified.
#   2.  This toolkit may not be reproduced or included in any commercial
#       media distribution, or commercial publication (for example CD-ROM,
#       disk, book, magazine, journal) without first obtaining the author's
#       permission.
#   3.  Subject to the above conditions being observed (1,2), this toolkit
#       may be freely reproduced or redistributed.
#   4.  This software is provided "as-is", without express or implied
#       warranty.  In no event shall the author be liable for any direct,
#       indirect or consequential damages however caused.
#   5.  Subject to the above conditions being observed (1-4),
#       this toolkit may be used at no cost to the recipient.
#
# Farrell McKay			Farrell.McKay@mpx.com.au

init {
	grammar		1.1
	target		"gold-v302-export.x86-microsoft-win32"
	text_offset	0x400c00
	data_offset	0x401600
	rodata_offset	0x401600
}
p0a {
	segment		text
	msg		"Changing domestic/export function"
	base		0x4826c0
	offset		0x0
	old_value	0x33 0xc0 0xc3 0xcc
			0xcc 0xcc 0xcc
	new_value	0xb8 0x01 0x00 0x00
			0x00 0xc3 0xcc
}
p2 {
	segment		text
	msg		"Altering cipher enable function - v2 cipher const"
	base		0x488e10
	offset		0x34
	old_value	0x81 0xf9 0x04 0xff
			0x00 0x00
	new_value	0x81 0xf9 0x01 0xff
			0x00 0x00
}
_main {
	segment		text
	msg		"main"
	base		0x4b16f0
	offset		0x20
	context		0x53 0x56 0x57
}
p1a {
	segment		text
	msg		"Altering cipher specs function - v2 mask tests"
	base		0x585b40
	offset		0x14
	old_value	0x83 0xe3 0x08
	new_value	0x83 0xe3 0x01
}
p1c {
	segment		text
	msg		"Altering cipher specs function - v2 cipher const"
	base		0x585b40
	offset		0x69
	old_value	0xc6 0x45 0x00 0x04
	new_value	0xc6 0x45 0x00 0x01
}
p6 {
	segment		text
	msg		"Changing cipher code test no. 4"
	base		0x585c30
	offset		0xf3
	old_value	0x74 0x2e
	new_value	0x7e 0x2e
}
p3 {
	segment		text
	msg		"Altering cipher code test no. 1"
	base		0x585e90
	offset		0xc
	old_value	0x83 0xf8 0x04
	new_value	0x83 0xf8 0x01
}
p4 {
	segment		text
	msg		"Changing cipher code test no. 2"
	base		0x585f00
	offset		0x35
	old_value	0x83 0xf8 0x04
	new_value	0x83 0xf8 0x01
}
p5 {
	segment		text
	msg		"Changing cipher code test no. 3"
	base		0x585f00
	offset		0xf8
	old_value	0x83 0xf8 0x04
	new_value	0x83 0xf8 0x01
}
p7a {
	segment		text
	msg		"Changing cipher characteristics, part 1"
	base		0x5860b0
	offset		0xa4
	old_value	0x83 0xff 0x04
	new_value	0x83 0xff 0x01
}
p7b {
	segment		text
	msg		"Changing cipher characteristics, part 2"
	base		0x5860b0
	offset		0xc2
        old_value       0x83 0xeb 0x05                  # subl   $0x5,%ebx
                        0x8d 0x44 0x24 0x44             # leal   0x44(%esp,1),%eax
                        0x50                            # pushl  %eax
			0xe8 0xc1 0xb9 0xea 0xff	# call   0x......
                        0xc7 0x44 0x24 0x28             # movl   $0x8,0x28(%esp,1)
                        0x08 0x00 0x00 0x00             #
                        0x8d 0x44 0x24 0x48             # leal   0x48(%esp,1),%eax
        new_value
                        0x33 0xdb                       # xorl   %ebx,%ebx
                        0x90                            # nop
                        0x8d 0x44 0x24 0x44             # -- no change
                        0x50                            # -- no change
			0xe8 0xc1 0xb9 0xea 0xff	# -- no change
                        0xc7 0x44 0x24 0x28             # movl   $0x0,0x28(%esp,1)
                        0x00 0x00 0x00 0x00             #
                        0x33 0xc0                       # xorl   %eax,%eax
                        0x90 0x90                       # nop nop
}
v2_cipher_descr {
	segment		data
	msg		"Changing v2 cipher description string number."
	base		0x603c00
	old_value	0x46 0xe2 0xff 0xff
	new_value	0x41 0xe2 0xff 0xff
}
v3_cipher_descr {
	segment		data
	msg		"Changing v3 cipher description string number."
	base		0x603c14
	old_value	0x4b 0xe2 0xff 0xff
	new_value	0x47 0xe2 0xff 0xff
}
v2_preferred {
	segment		data
	msg		"Changing hard-coded EXP-RC4-MD5 const"
	base		0x613bc0
	old_value	0x02 0x00 0x80 0x00
	new_value	0x01 0x00 0x80 0x00
}
v2_enabled {
	segment		data
	msg		"Changing v2 ciphers enabled bit mask"
	base		0x613bf0
	old_value	0x0a 0x00 0x00 0x00
			0x0a 0x00 0x00 0x00
	new_value	0x03 0x00 0x00 0x00
			0x03 0x00 0x00 0x00
}
v3_enabled {
	segment		data
	msg		"Changing v3 ciphers enabled table"
	base		0x616020
	old_value	0x03 0x00 0x06 0x00
			0x01 0x00 0x00 0x00
	new_value	0x04 0x00 0x03 0x00
			0x01 0x00 0x00 0x00
}
v2_cipher_spec {
	segment		data
	msg		"Changing v2 cipher in v2+v3 cipher specs table"
	base		0x61c9b8
	offset		0x14
	old_value	0x04 0xff 0x00 0x00
	new_value	0x01 0xff 0x00 0x00
}
v3_name_ptr_rc4_40 {
	segment		data
	msg		"Changing ptr to 'ssl3_rsa_rc4_40_md5' in v2+v3 cipher specs table"
	base		0x61c9b8
	offset		0x2c
	old_value	0x50 0xca 0x61 0x00
	new_value	0x51 0xca 0x61 0x00
}
v3_cipher_spec {
	segment		data
	msg		"Changing v3 cipher in v2+v3 cipher specs table"
	base		0x61c9b8
	offset		0x3c
	old_value	0x06 0x00 0x00 0x00
			0x64 0xca 0x61 0x00
	new_value	0x04 0x00 0x00 0x00
			0x65 0xca 0x61 0x00
}
v3_name_ptr_null {
	segment		data
	msg		"Changing ptr to 'ssl3_rsa_null_md5' in v2+v3 cipher specs table"
	base		0x61c9b8
	offset		0x54
	old_value	0x78 0xca 0x61 0x00
	new_value	0x7a 0xca 0x61 0x00
}
ssl2_cipher_name {
	segment		rodata
	msg		"Changing and shifting cipher names - used in preferences file"
	base		0x61ca38
	offset		0xc
	old_value	"ssl2_rc2_40\000ssl3_rsa_rc4_40_md5\000ssl3_rsa_rc2_40_md5\000ssl3_rsa_null_md5\000\000\000"
	new_value	"ssl2_rc4_128\000ssl3_rsa_rc4_40_md5\000ssl3_rsa_rc4_128_md5\000ssl3_rsa_null_md5\000"
}
