Cooperation is the foundation of wireless ad hoc networks with nodes forwarding their neighbors' packets for the common good. However, energy and bandwidth constraints combined with selfish behavior lead to collapsed networks where all nodes defect. Researchers have tried to incentivize or enforce the nodes for cooperation in various ways. However, these techniques do not consider the heterogeneous networks in which a diverse set of nodes with different cognitive capabilities exist. Furthermore, in ad hoc networks identity is a fuzzy concept. It is easy to forge multiple identities and hide defective behavior. Moreover, the nature of the wireless medium is always ambiguous due to collisions, interference and asymmetric links. In all this uncertainty, having complete information about the intentions of the nodes and acting on it is not straightforward. Backed by evolutionary game theory and multi-agent systems research, we adapt and modify two meta strategies to embrace this uncertainty. These modified meta strategies, Win Stay Loose Shift and Stochastic Imitate Best Strategy, do not require strict identity information and only depend on nodes' own capabilities. Nodes monitor the traffic in their neighborhood by using a two-hop overhearing method, and decide whether they should be cooperative or defective. We show that nodes are able to discover and use the best strategy in their locality and protect themselves against the exploitation by free riders who devise Sybil attacks by changing their identities.