@master I’m referring to raw bytes, and wild-cards can be very helpful as well. However this does count as a signature.
For example, if we had a stub which started with MOV R10, RCX then the bytes for this would be 0x4C, 0x8B, 0xD1. Now if we wanted to locate the first stub within a specific module which made use of MOV R10, RCX then we could find the base address of the target module in-memory and then calculate the base address of the next module in-memory (so we know where to stop scanning). Then we could scan between that memory range until we get a hit on the signature we have which consists of 0x4C, 0x8B, 0xD1. You could always format it differently though depending on your scanning engine.
Now when it comes down to signature scanning, wild-cards can be very helpful. It allows you to put a wild-card (e.g. “??”) in a location of the byte signature in which the byte/s where the wild-card/s are located may change in the future, to improve reliability of the signature. This allows you to scan for XXXX??XXXXXX in which the byte where ?? is will be ignored.