Topic created on: June 17, 2009 02:54 CDT by
djnemo 
.
how can get Compiler and Linker Security Options from file?
for example: /SafeSEH ,/GS and other security options...
i wrote a small script for myself to find activated /GS switches per function in visual c files.
it is a IDAPython script.
nothing special, but it works for me. as i don't have VC2008 currently i haven't written a script for scanning for /SAFESEH yet.
import string, os, sys, glob
from idaapi import *
def main():
ea=0
FOUNDSECP=0
autoWait()
while (1):
ea = FindBinary(ea, SEARCH_DOWN | SEARCH_NEXT | SEARCH_NOSHOW, "4E E6 40 BB")
if ea == BADADDR:
if FOUNDSECP==0:
print "Haven't found a referenced security_cookie pattern! :("
break
else:
SCOOKIEREF=DfirstB(ea)
if SCOOKIEREF!=0xffffffff:
if (GetMnem(SCOOKIEREF) == "cmp") & (GetOpnd(SCOOKIEREF,0) == "ecx"):
CODEREF=RfirstB(SCOOKIEREF)
if (GetFunctionName(CODEREF)==GetFunctionName(SCOOKIEREF)):
CODEREF=RnextB(SCOOKIEREF,CODEREF)
while (CODEREF!=0xffffffff):
print "found reference at %08lx in function %s" % (CODEREF, GetFunctionName(CODEREF))
FOUNDSECP=1
CODEREF=RnextB(SCOOKIEREF,CODEREF)
while (SCOOKIEREF!=0xffffffff):
if (GetMnem(SCOOKIEREF) == "cmp") & (GetOpnd(SCOOKIEREF,0) == "ecx"):
CODEREF=RfirstB(SCOOKIEREF)
if (GetFunctionName(CODEREF)==GetFunctionName(SCOOKIEREF)):
CODEREF=RnextB(SCOOKIEREF,CODEREF)
while (CODEREF!=0xffffffff):
print "found reference at %08lx in function %s" % (CODEREF, GetFunctionName(CODEREF))
FOUNDSECP=1
CODEREF=RnextB(SCOOKIEREF,CODEREF)
SCOOKIEREF=DnextB(ea,SCOOKIEREF)
if __name__ == "__main__":
main()
|