示例#1
0
from PyEcom import *
from config import *

if __name__ == "__main__":
    print "[*] Starting Prius diagnostics check..."
    ecom = PyEcom('Debug\\ecomcat_api')
    ecom.open_device(0,1)

    diag_req = [0x10, PriusDiagCode]

    for ecu_num, ecu_str in PriusECU.iteritems():
        
        print "DaigCheck...[0x%04X] => %s..." % (ecu_num, ecu_str)
        ret = ecom.diagnostic_session(ecu_num, diag_req)
        if(not ret):
            print "FAILED\n"
        else:
            print "SUCCEEDED!\n"

    for ecu_sub_num, ecu_str in PriusMainECU.iteritems():
        print "DiagCheck...[0x0750:0x%02X] => %s..." % (ecu_sub_num, ecu_str)
        ret = ecom.diagnostic_session(0x750, diag_req, ecu_sub_num)
        if(not ret):
            print "FAILED\n"
        else:
            print "SUCCEEDED!\n"
    
    
    ret = ecom.security_access(ECU)
    if ret == False:
        print "[!] [0x%04X] Security Access: FAILURE" % (ECU)
        sys.exit(1)
        
    print "[*] [0x%04X] Security Access: Success" % (ECU)

    #Unsure but this happens 3x in the capture before diag programming mode
    #I think this may have to do w/ tellin other ECUs the one being reprogrammed
    #is going offline for a while and DO NOT set DTC codes
    for i in range(0, 3):
        ret = ecom.send_iso_tp_data(0x720, [0xA0, 0x27])

    #Grequires the to be in half-on state (power on, engine off)
    #Failure to be in the required mode will result in diagnostic session failing
    ret = ecom.diagnostic_session(ECU, [0x10, 0x02])
    if ret == False:
        print "[!] [0x%04X] Programming Mode: Failure" % (ECU)
        sys.exit(1)

    print "[*] [0x%04X] Programming Mode: Success" % (ECU)


##    for ecu_num, ecu_name in PriusECU.iteritems():
##        print "Trying security access for %s" % (ecu_name)
##        #security access
##        ret = ecom.security_access(ecu_num)
##
##    for ecu_sub_num, ecu_name in PriusMainECU.iteritems():
##        print "Trying security access for %s" % (ecu_name)
##        ret = ecom.security_access(0x750, ecu_sub_num)
示例#3
0
from PyEcom import *
from config import *

if __name__ == "__main__":
    print "[*] Starting Prius diagnostics check..."
    ecom = PyEcom('Debug\\ecomcat_api')
    ecom.open_device(0, 1)

    diag_req = [0x10, PriusDiagCode]

    for ecu_num, ecu_str in PriusECU.iteritems():

        print "DaigCheck...[0x%04X] => %s..." % (ecu_num, ecu_str)
        ret = ecom.diagnostic_session(ecu_num, diag_req)
        if (not ret):
            print "FAILED\n"
        else:
            print "SUCCEEDED!\n"

    for ecu_sub_num, ecu_str in PriusMainECU.iteritems():
        print "DiagCheck...[0x0750:0x%02X] => %s..." % (ecu_sub_num, ecu_str)
        ret = ecom.diagnostic_session(0x750, diag_req, ecu_sub_num)
        if (not ret):
            print "FAILED\n"
        else:
            print "SUCCEEDED!\n"