| Revision | 45f1e7584962199c4eed25f1c15210c13d02d576 (tree) |
|---|---|
| Time | 2012-03-14 22:31:18 |
| Author | qwerty2501 <qwerty2501@user...> |
| Commiter | qwerty2501 |
クローム・ファイアフォックスのクッキー予備処理追加
| @@ -244,8 +244,8 @@ int _tmain(int argc, _TCHAR* argv[]) | ||
| 244 | 244 | nicoLive_setup(); |
| 245 | 245 | |
| 246 | 246 | |
| 247 | - | |
| 248 | - nicoLive_connect(); | |
| 247 | + NLIB_Test(); | |
| 248 | + //nicoLive_connect(); | |
| 249 | 249 | //nicoLive_mylist(); |
| 250 | 250 | |
| 251 | 251 | nicoLive_teardown(); |
| @@ -64,7 +64,7 @@ | ||
| 64 | 64 | <PropertyGroup Label="UserMacros" /> |
| 65 | 65 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
| 66 | 66 | <LinkIncremental>true</LinkIncremental> |
| 67 | - <LibraryPath>$(SolutionDir)lib\$(Configuration);$(LibraryPath)</LibraryPath> | |
| 67 | + <LibraryPath>$(SolutionDir)$(Configuration);$(LibraryPath)</LibraryPath> | |
| 68 | 68 | <IncludePath>$(SolutionDir);$(SolutionDir)\Include;$(SolutionDir)\Include;$(IncludePath)</IncludePath> |
| 69 | 69 | </PropertyGroup> |
| 70 | 70 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-window|Win32'"> |
| @@ -152,7 +152,7 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, | ||
| 152 | 152 | */ |
| 153 | 153 | |
| 154 | 154 | |
| 155 | - NLIB_Test(); | |
| 155 | + //NLIB_Test(); | |
| 156 | 156 | |
| 157 | 157 | FreeLibrary(hRich); |
| 158 | 158 |
| @@ -258,7 +258,30 @@ VOID FinalizeShareCookie(){ | ||
| 258 | 258 | return; |
| 259 | 259 | } |
| 260 | 260 | |
| 261 | +VOID ShareCookieUnitTest(){ | |
| 262 | + | |
| 263 | + TCHAR cookieBuf[_MAX_PATH]; | |
| 264 | + SIZE_T cookieBufSize = ARRAY_LENGTH(cookieBuf); | |
| 265 | + LPCTSTR key = TEXT("user_session"); | |
| 266 | + LPCTSTR domein = TEXT("nicovideo.jp"); | |
| 267 | + check(GetCookieInternetExplorerSelfParse(ieCookiePath,cookieBuf,cookieBufSize,key,domein) == COOKIE_ERR_OK,TEXT("ie通常クッキー取得に失敗しました")); | |
| 268 | + dumpln(TEXT("ienormal:%s"),cookieBuf); | |
| 269 | + | |
| 270 | + check(GetCookieInternetExplorerSelfParse(ieCookieSecPath,cookieBuf,cookieBufSize,key,domein) == COOKIE_ERR_OK,TEXT("ieセキュリティモードクッキー取得に失敗しました")); | |
| 271 | + dumpln(TEXT("iesec:%s"),cookieBuf); | |
| 272 | + | |
| 273 | + | |
| 274 | + dumpln(TEXT("test")); | |
| 275 | + | |
| 276 | + check(SelfParseCookie(fireFoxCookiePath,cookieBuf,cookieBufSize,key,domein,GetCookieFireFoxSelf) == COOKIE_ERR_OK,TEXT("ファイアフォックス自力解析に失敗しました")); | |
| 277 | + dumpln(TEXT("firefox:%s"),cookieBuf); | |
| 278 | + | |
| 261 | 279 | |
| 280 | + check(SelfParseCookie(googleChromeCookiePath,cookieBuf,cookieBufSize,key,domein,GetCookieGoogleChromeSelf) == COOKIE_ERR_OK,TEXT("クローム自力解析に失敗しました")); | |
| 281 | + dumpln(TEXT("chrome:%s"),cookieBuf); | |
| 282 | + | |
| 283 | + return; | |
| 284 | +} | |
| 262 | 285 | |
| 263 | 286 | static INLINE BOOL CookieFileCopy(LPCWSTR sourceFileName,LPWSTR pathBuf,int bufSize){ |
| 264 | 287 |
| @@ -748,9 +771,71 @@ static INLINE COOKIE_RESULT GetCookieFireFoxSQLite(sqlite3_stmt *stmt,LPWSTR coo | ||
| 748 | 771 | |
| 749 | 772 | static INLINE COOKIE_RESULT GetCookieFireFoxSelf(LPCSTR targetString,LPCSTR targetEndPointer,LPWSTR cookie,SIZE_T bufSize,LPCWSTR key,LPCWSTR domein){ |
| 750 | 773 | COOKIE_RESULT result = COOKIE_ERR_UNKNOWN; |
| 774 | + CHAR mb_key[_MAX_PATH]; | |
| 775 | + CHAR mb_domein[_MAX_PATH]; | |
| 776 | + CHAR mb_cookie[_MAX_PATH]; | |
| 777 | + CHAR mb_domein_key[(sizeof(mb_key) + sizeof(mb_domein))/sizeof(CHAR)]; | |
| 778 | + CHAR mb_end_domein[_MAX_PATH] = "."; | |
| 779 | + LPCSTR startPointer; | |
| 780 | + LPCSTR endPointer; | |
| 781 | + | |
| 782 | + | |
| 783 | + if(ARRAY_LENGTH(mb_key) < GetLenToMB(CP_UTF8,key)){ | |
| 784 | + | |
| 785 | + goto keybuffbigerr; | |
| 751 | 786 | |
| 787 | + } else if(ARRAY_LENGTH(mb_domein) < GetLenToMB(CP_UTF8,domein) ){ | |
| 788 | + | |
| 789 | + goto domeinbuffbigerr; | |
| 790 | + | |
| 791 | + } | |
| 792 | + | |
| 793 | + | |
| 794 | + WideToMB(CP_UTF8,key,mb_key,ARRAY_LENGTH(mb_key)); | |
| 795 | + WideToMB(CP_UTF8,domein,mb_domein,ARRAY_LENGTH(mb_domein)); | |
| 796 | + | |
| 797 | + strcpy(mb_domein_key,mb_domein); | |
| 798 | + strcat(mb_domein_key,mb_key); | |
| 799 | + strcat(mb_end_domein,mb_domein); | |
| 800 | + for(;targetString < targetEndPointer;targetString += strlen(targetString)+2){ | |
| 801 | + startPointer = strstr(targetString,mb_domein_key); | |
| 802 | + | |
| 803 | + if(startPointer != NULL ){ | |
| 804 | + endPointer = strstr(startPointer,mb_end_domein); | |
| 805 | + if(endPointer != NULL){ | |
| 806 | + startPointer += strlen(mb_domein_key); | |
| 807 | + if(startPointer < endPointer){ | |
| 808 | + int cookiesize = endPointer - startPointer; | |
| 809 | + if(cookiesize + 1 > ARRAY_LENGTH(mb_cookie))goto cookiebuferr; | |
| 810 | + strncpy(mb_cookie,startPointer,cookiesize); | |
| 811 | + mb_cookie[cookiesize] = '\0'; | |
| 812 | + if(((int)bufSize) < GetLenToWide(CP_UTF8,mb_cookie) + 1)goto cookiebuferr; | |
| 813 | + | |
| 814 | + MBToWide(CP_UTF8,mb_cookie,cookie,bufSize); | |
| 815 | + result = COOKIE_ERR_OK; | |
| 816 | + goto end; | |
| 817 | + } | |
| 818 | + } | |
| 819 | + } | |
| 820 | + } | |
| 752 | 821 | result = COOKIE_ERR_DETAIL_NOTFOUND; |
| 822 | + | |
| 823 | +end: | |
| 824 | + | |
| 825 | + | |
| 753 | 826 | return result; |
| 827 | + | |
| 828 | +keybuffbigerr: | |
| 829 | + result = COOKIE_ERR_DETAIL_KEY_TOOBIG; | |
| 830 | + goto end; | |
| 831 | + | |
| 832 | +domeinbuffbigerr: | |
| 833 | + result = COOKIE_ERR_DETAIL_DOMEIN_TOOBIG; | |
| 834 | + goto end; | |
| 835 | + | |
| 836 | +cookiebuferr: | |
| 837 | + result = COOKIEERR_DETAIL_RESULT_TOOBIG; | |
| 838 | + goto end; | |
| 754 | 839 | } |
| 755 | 840 | |
| 756 | 841 |
| @@ -877,9 +962,71 @@ static INLINE COOKIE_RESULT GetCookieGoogleChromeSQLite(sqlite3_stmt *stmt,LPWST | ||
| 877 | 962 | static INLINE COOKIE_RESULT GetCookieGoogleChromeSelf(LPCSTR targetString,LPCSTR targetEndPointer,LPWSTR cookie,SIZE_T bufSize,LPCWSTR key,LPCWSTR domein){ |
| 878 | 963 | |
| 879 | 964 | COOKIE_RESULT result = COOKIE_ERR_UNKNOWN; |
| 965 | + CHAR mb_key[_MAX_PATH]; | |
| 966 | + CHAR mb_domein[_MAX_PATH]; | |
| 967 | + CHAR mb_cookie[_MAX_PATH]; | |
| 968 | + CHAR mb_domein_key[(sizeof(mb_key) + sizeof(mb_domein))/sizeof(CHAR)]; | |
| 969 | + LPCSTR endString = "/"; | |
| 970 | + LPCSTR startPointer; | |
| 971 | + LPCSTR endPointer; | |
| 972 | + | |
| 973 | + | |
| 974 | + if(ARRAY_LENGTH(mb_key) < GetLenToMB(CP_UTF8,key)){ | |
| 975 | + | |
| 976 | + goto keybuffbigerr; | |
| 977 | + | |
| 978 | + } else if(ARRAY_LENGTH(mb_domein) < GetLenToMB(CP_UTF8,domein) ){ | |
| 979 | + | |
| 980 | + goto domeinbuffbigerr; | |
| 981 | + | |
| 982 | + } | |
| 983 | + | |
| 984 | + | |
| 985 | + WideToMB(CP_UTF8,key,mb_key,ARRAY_LENGTH(mb_key)); | |
| 986 | + WideToMB(CP_UTF8,domein,mb_domein,ARRAY_LENGTH(mb_domein)); | |
| 987 | + | |
| 988 | + strcpy(mb_domein_key,mb_domein); | |
| 989 | + strcat(mb_domein_key,mb_key); | |
| 880 | 990 | |
| 991 | + for(;targetString < targetEndPointer;targetString += strlen(targetString)+2){ | |
| 992 | + startPointer = strstr(targetString,mb_domein_key); | |
| 993 | + | |
| 994 | + if(startPointer != NULL ){ | |
| 995 | + endPointer = strstr(startPointer,endString); | |
| 996 | + if(endPointer != NULL){ | |
| 997 | + startPointer += strlen(mb_domein_key); | |
| 998 | + if(startPointer < endPointer){ | |
| 999 | + int cookiesize = endPointer - startPointer; | |
| 1000 | + if(cookiesize + 1 > ARRAY_LENGTH(mb_cookie))goto cookiebuferr; | |
| 1001 | + strncpy(mb_cookie,startPointer,cookiesize); | |
| 1002 | + mb_cookie[cookiesize] = '\0'; | |
| 1003 | + if(((int)bufSize) < GetLenToWide(CP_UTF8,mb_cookie) + 1)goto cookiebuferr; | |
| 1004 | + | |
| 1005 | + MBToWide(CP_UTF8,mb_cookie,cookie,bufSize); | |
| 1006 | + result = COOKIE_ERR_OK; | |
| 1007 | + goto end; | |
| 1008 | + } | |
| 1009 | + } | |
| 1010 | + } | |
| 1011 | + } | |
| 881 | 1012 | result = COOKIE_ERR_DETAIL_NOTFOUND; |
| 1013 | + | |
| 1014 | +end: | |
| 1015 | + | |
| 1016 | + | |
| 882 | 1017 | return result; |
| 1018 | + | |
| 1019 | +keybuffbigerr: | |
| 1020 | + result = COOKIE_ERR_DETAIL_KEY_TOOBIG; | |
| 1021 | + goto end; | |
| 1022 | + | |
| 1023 | +domeinbuffbigerr: | |
| 1024 | + result = COOKIE_ERR_DETAIL_DOMEIN_TOOBIG; | |
| 1025 | + goto end; | |
| 1026 | + | |
| 1027 | +cookiebuferr: | |
| 1028 | + result = COOKIEERR_DETAIL_RESULT_TOOBIG; | |
| 1029 | + goto end; | |
| 883 | 1030 | } |
| 884 | 1031 | |
| 885 | 1032 | /// |
| @@ -1134,17 +1281,20 @@ static COOKIE_RESULT SelfParseCookie(LPCWSTR cookieFilePath,LPWSTR cookie,SIZE_T | ||
| 1134 | 1281 | |
| 1135 | 1282 | COOKIE_RESULT result = COOKIE_ERR_UNKNOWN; |
| 1136 | 1283 | |
| 1137 | - HANDLE hCookieFile = CreateFile(cookieFilePath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); | |
| 1284 | + HANDLE hCookieFile = CreateFile(cookieFilePath,GENERIC_READ,FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); | |
| 1138 | 1285 | if(hCookieFile == INVALID_HANDLE_VALUE ){ |
| 1139 | 1286 | |
| 1140 | 1287 | goto fileopenerr; |
| 1141 | 1288 | } |
| 1142 | 1289 | { |
| 1143 | 1290 | DWORD readSize; |
| 1144 | - DWORD highSize; | |
| 1145 | - DWORD lowSize = GetFileSize(hCookieFile,&highSize); | |
| 1146 | - SIZE_T bufferSize = MAKELONG(lowSize,highSize); | |
| 1147 | - LPSTR buffer = (LPSTR)malloc(bufferSize); | |
| 1291 | + | |
| 1292 | + DWORD lowSize = GetFileSize(hCookieFile,NULL); | |
| 1293 | + SIZE_T bufferSize = lowSize; | |
| 1294 | + LPSTR buffer = NULL; | |
| 1295 | + if(lowSize == -1)goto fileopenerr; | |
| 1296 | + | |
| 1297 | + buffer = (LPSTR)malloc(bufferSize); | |
| 1148 | 1298 | |
| 1149 | 1299 | ReadFile(hCookieFile,buffer,bufferSize,&readSize,NULL); |
| 1150 | 1300 |
| @@ -1258,56 +1408,3 @@ static INLINE BROWSERTYPE browserNameToBrowserType(LPCWSTR browserName){ | ||
| 1258 | 1408 | |
| 1259 | 1409 | } |
| 1260 | 1410 | |
| 1261 | - | |
| 1262 | - | |
| 1263 | - | |
| 1264 | - | |
| 1265 | - | |
| 1266 | - | |
| 1267 | - | |
| 1268 | - | |
| 1269 | - | |
| 1270 | - | |
| 1271 | - | |
| 1272 | - | |
| 1273 | - | |
| 1274 | - | |
| 1275 | - | |
| 1276 | - | |
| 1277 | - | |
| 1278 | - | |
| 1279 | - | |
| 1280 | - | |
| 1281 | - | |
| 1282 | - | |
| 1283 | - | |
| 1284 | - | |
| 1285 | - | |
| 1286 | - | |
| 1287 | - | |
| 1288 | - | |
| 1289 | - | |
| 1290 | -VOID ShareCookieUnitTest(){ | |
| 1291 | - | |
| 1292 | - TCHAR cookieBuf[_MAX_PATH]; | |
| 1293 | - SIZE_T cookieBufSize = ARRAY_LENGTH(cookieBuf); | |
| 1294 | - LPCTSTR key = TEXT("user_session"); | |
| 1295 | - LPCTSTR domein = TEXT("nicovideo.jp"); | |
| 1296 | - check(GetCookieInternetExplorerSelfParse(ieCookiePath,cookieBuf,cookieBufSize,key,domein) == COOKIE_ERR_OK,TEXT("ie通常クッキー取得に失敗しました")); | |
| 1297 | - dumpln(TEXT("ienormal:%s"),cookieBuf); | |
| 1298 | - | |
| 1299 | - check(GetCookieInternetExplorerSelfParse(ieCookieSecPath,cookieBuf,cookieBufSize,key,domein) == COOKIE_ERR_OK,TEXT("ieセキュリティモードクッキー取得に失敗しました")); | |
| 1300 | - dumpln(TEXT("iesec:%s"),cookieBuf); | |
| 1301 | - | |
| 1302 | - | |
| 1303 | - dumpln(TEXT("test")); | |
| 1304 | - | |
| 1305 | - check(SelfParseCookie(fireFoxCookiePath,cookieBuf,cookieBufSize,key,domein,GetCookieFireFoxSelf) == COOKIE_ERR_OK,TEXT("ファイアフォックス自力解析に失敗しました")); | |
| 1306 | - dumpln(TEXT("firefox:%s"),cookieBuf); | |
| 1307 | - | |
| 1308 | - | |
| 1309 | - check(SelfParseCookie(googleChromeCookiePath,cookieBuf,cookieBufSize,key,domein,GetCookieGoogleChromeSelf) == COOKIE_ERR_OK,TEXT("クローム自力解析に失敗しました")); | |
| 1310 | - dumpln(TEXT("chrome:%s"),cookieBuf); | |
| 1311 | - | |
| 1312 | - return; | |
| 1313 | -} | |
| \ No newline at end of file |