For a C/C++ program compiled on Windows using the x86 architecture, what is the best way to find the main function within disassembled code without relying on signatures such as FLIRT?
I've found various answers to questions similar to this, but they're answering questions that are far more specific to the OPs use-case. I often see that searching for three (console) or four (GUI) pushes somewhere within the CRT libraries is recommended, but this sometimes is too weak of an indication for me (envp is optional, weird startup wrapping libraries, etc.)
Are there any more solid ways to look for the main(), WinMain or DllMain() functions in Windows PE files?