2010-10-16 59 views
0

我目前正在研究一个工具来检查您的应用程序是否容易受到dll劫持。 无论如何,我的代码中有一段看起来不太优雅。 现在只有两套,但我想补充一些。是否有另一种方式 ,而不是只为每组添加for循环?多维数组和dll劫持

LPSTR szFileExtWireShark[] = {"airpcap.dll", ".bfr", ".enc", ".fdc", ".pcap", ".pcapng", ".syc", NULL}; 
LPSTR szFileExtWin7[] = {"wab32res.dll", ".contact", ".group", ".p7c", ".vcf", NULL}; 

int loadSets(LPSTR szFileName, LPSTR szPath) { 
    int counter; 
    for(counter=1; szFileExtWireShark[counter] != NULL; counter++) { 
checkExt(szFileName, szPath, szFileExtWireShark[counter], szFileExtWireShark[0]); 
    } 
    for(counter=1; szFileExtWin7[counter] != NULL; counter++) { 
checkExt(szFileName, szPath, szFileExtWin7[counter], szFileExtWin7[0]); 
    } 
} 

回答

1

采用单回路

LPSTR szFileExtWireShark[] = {"airpcap.dll", ".bfr", ".enc", ".fdc", ".pcap", ".pcapng", ".syc", NULL}; 
    LPSTR szFileExtWin7[] = {"wab32res.dll", ".contact", ".group", ".p7c", ".vcf", NULL}; 

    int loadSets(LPSTR szFileName, LPSTR szPath) { 
     int counter; 
     for(counter=1; (szFileExtWireShark[counter] != NULL && szFileExtWin7[counter] != NULL); counter++) { 
    if(szFileExtWireShark[counter] != NULL) 
    checkExt(szFileName, szPath, szFileExtWireShark[counter], szFileExtWireShark[0]); 
    if(szFileExtWin7[counter] != NULL) 
    checkExt(szFileName, szPath, szFileExtWin7[counter], szFileExtWin7[0]); 
     } 
    } 
+0

伟大的答案。你想如何保持组织? – Bubblegun 2010-10-16 12:23:32