gun probably comes from Old Norse Gunnhildr, a woman's name applied to ballistae and other weapons. The name is formed from gunnr and hildr, both meaning "war". gunnr is from Proto-Indo-European *gʷʰen- "to strike, kill".
A bezoar is "intestinal calculus", that is a stone in the stomach, believed to be an antidote to poison. The word is from Arabic bēzahr, a variant of bāzahr, bādizahr, from Persian pād-zahr, bād-zahr (پادزهر, بادزهر) from pād "protector" plus zahr which means "stone" according to the ODEE and "poison" according to the AHD. Steingass's Comprehensive Persian-English Dictionary says it's "poison".
zahr is from Old Iranian *jaθra- from *gʷʰen- (the zero-grade form *gʷʰn-tro-). So its etymological meaning is "killer". I wonder why the ODEE says it means "stone".