• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision45f1e7584962199c4eed25f1c15210c13d02d576 (tree)
Time2012-03-14 22:31:18
Authorqwerty2501 <qwerty2501@user...>
Commiterqwerty2501

Log Message

クローム・ファイアフォックスのクッキー予備処理追加

Change Summary

Incremental Difference

--- a/nlib_driver/nlib_driver.cpp
+++ b/nlib_driver/nlib_driver.cpp
@@ -244,8 +244,8 @@ int _tmain(int argc, _TCHAR* argv[])
244244 nicoLive_setup();
245245
246246
247-
248- nicoLive_connect();
247+ NLIB_Test();
248+ //nicoLive_connect();
249249 //nicoLive_mylist();
250250
251251 nicoLive_teardown();
--- a/nlib_driver/nlib_driver.vcxproj
+++ b/nlib_driver/nlib_driver.vcxproj
@@ -64,7 +64,7 @@
6464 <PropertyGroup Label="UserMacros" />
6565 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
6666 <LinkIncremental>true</LinkIncremental>
67- <LibraryPath>$(SolutionDir)lib\$(Configuration);$(LibraryPath)</LibraryPath>
67+ <LibraryPath>$(SolutionDir)$(Configuration);$(LibraryPath)</LibraryPath>
6868 <IncludePath>$(SolutionDir);$(SolutionDir)\Include;$(SolutionDir)\Include;$(IncludePath)</IncludePath>
6969 </PropertyGroup>
7070 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-window|Win32'">
Binary files a/nlite.suo and b/nlite.suo differ
--- a/nlite/nlite.cpp
+++ b/nlite/nlite.cpp
@@ -152,7 +152,7 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE,
152152 */
153153
154154
155- NLIB_Test();
155+ //NLIB_Test();
156156
157157 FreeLibrary(hRich);
158158
--- a/shareCookie/shareCookie.c
+++ b/shareCookie/shareCookie.c
@@ -258,7 +258,30 @@ VOID FinalizeShareCookie(){
258258 return;
259259 }
260260
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+
261279
280+ check(SelfParseCookie(googleChromeCookiePath,cookieBuf,cookieBufSize,key,domein,GetCookieGoogleChromeSelf) == COOKIE_ERR_OK,TEXT("クローム自力解析に失敗しました"));
281+ dumpln(TEXT("chrome:%s"),cookieBuf);
282+
283+ return;
284+}
262285
263286 static INLINE BOOL CookieFileCopy(LPCWSTR sourceFileName,LPWSTR pathBuf,int bufSize){
264287
@@ -748,9 +771,71 @@ static INLINE COOKIE_RESULT GetCookieFireFoxSQLite(sqlite3_stmt *stmt,LPWSTR coo
748771
749772 static INLINE COOKIE_RESULT GetCookieFireFoxSelf(LPCSTR targetString,LPCSTR targetEndPointer,LPWSTR cookie,SIZE_T bufSize,LPCWSTR key,LPCWSTR domein){
750773 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;
751786
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+ }
752821 result = COOKIE_ERR_DETAIL_NOTFOUND;
822+
823+end:
824+
825+
753826 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;
754839 }
755840
756841
@@ -877,9 +962,71 @@ static INLINE COOKIE_RESULT GetCookieGoogleChromeSQLite(sqlite3_stmt *stmt,LPWST
877962 static INLINE COOKIE_RESULT GetCookieGoogleChromeSelf(LPCSTR targetString,LPCSTR targetEndPointer,LPWSTR cookie,SIZE_T bufSize,LPCWSTR key,LPCWSTR domein){
878963
879964 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);
880990
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+ }
8811012 result = COOKIE_ERR_DETAIL_NOTFOUND;
1013+
1014+end:
1015+
1016+
8821017 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;
8831030 }
8841031
8851032 ///
@@ -1134,17 +1281,20 @@ static COOKIE_RESULT SelfParseCookie(LPCWSTR cookieFilePath,LPWSTR cookie,SIZE_T
11341281
11351282 COOKIE_RESULT result = COOKIE_ERR_UNKNOWN;
11361283
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);
11381285 if(hCookieFile == INVALID_HANDLE_VALUE ){
11391286
11401287 goto fileopenerr;
11411288 }
11421289 {
11431290 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);
11481298
11491299 ReadFile(hCookieFile,buffer,bufferSize,&readSize,NULL);
11501300
@@ -1258,56 +1408,3 @@ static INLINE BROWSERTYPE browserNameToBrowserType(LPCWSTR browserName){
12581408
12591409 }
12601410
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