DESCRIPTION
/* opcode: 0x01, address: 0x00401A70 */
long sub_401A70 (
[in][string] char * arg_1,
[in][string] char * arg_2, // stack overflow
[out][size_is(8192), length_is(*arg_4)] char * arg_3,
[in, out] long * arg_4
);
/* opcode: 0x02, address: 0x00401CC0*/
long sub_401CC0 (
[in][string] char * arg_1,
[in][string] char * arg_2, // stack overflow
[in][string] char * arg_3,
[out] long * arg_4
);
/* opcode: 0x18, address: 0x004041C0*/
long sub_4041C0 (
[in][string] char * arg_1,
[in][string] char * arg_2, // stack overflow
[out] long * arg_3
);
The first two vulnerable subroutines are the result of inline strcpy() / memcpy()'s. The third vulnerable subroutine is due to an insecure call to lstrcat(). |