亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mtkdump.cpp

?? DVD
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	}
	return firstnonoption;
}

// **********************************************************************
//  READ FILE TO BUFFER
// **********************************************************************

int ReadFileToBuf(char filename[255], char **ptrBuf)
{
	FILE *fi;
	long length;

	// Open file
	fi = fopen(filename, "rb");
	if (fi==NULL)
	{
		printf("- Failed to open input file '%s'\n", filename);
		return -1;
	}

	// Get length
	fseek(fi, 0, SEEK_END);
	length = ftell(fi);
	fseek(fi, 0, SEEK_SET);
	if (length>0xFFFFF)
	{
		printf("- Input file is way too big '%s'\n", filename);
		return -1;
	}

	// Try free buf
	if(*ptrBuf != NULL) free(*ptrBuf);

	// Allocate memory for file
	*ptrBuf = (char *) malloc(length);
	if (*ptrBuf==NULL)
	{
		printf("- Failed to allocate memory for '%s'\n", filename);
		return -1;
	}

	// Read file to buf
	printf(" + Reading.. '%s'\n", filename);
	fread(*ptrBuf, 1, length, fi);
	fclose(fi);

	return (int) length;
}

// **********************************************************************
//  READ FROM MEMORY
// **********************************************************************

int DumpRead(char filename[255])
{
    FILE    *file;
    uchar   *pszBuffer;  							// Temp buffer for in file

    int     iRet;
    ulong   ulBytesRead;
    ulong   ulAddress;
    ulong   ulLength;
    uchar   bTarget;
    TMediatek *MtkCom;
    int     jooo;

  #ifdef THREAD
    HANDLE  Thread;
    stThreadParam ThreadParam;
  #endif

//  double dTickRatio;
//  int iTickCount;

	try
	{
        if(iDumpLength == -1)
        {
            // Error no read or write selected
            printf("- No read length set (/l=LONG)\n");
            return EXIT_FAILURE;
        }

        // Open output file
        file = fopen(filename, "wb");
        if (file == NULL)
        {
            printf("- Failed to open output file '%s'\n", filename);
            return EXIT_FAILURE;
        }

        // Convert address from int to ulong
        ulAddress = (ulong) iDumpAddress;
        ulLength  = (ulong) iDumpLength;
        bTarget = bDumpTargetMem;

        printf("\nSTART MEMORY DUMP READ\n");
        printf("----------------------\n");
        printf("ADDRESS : 0x%X\n",     ulAddress);
        printf("LENGTH  : %d bytes\n", ulLength);
        printf("TARGET  : %d\n",       bTarget);
        printf("OUTPUT  : %s\n",       filename);

        // Create Mediatek COM
        MtkCom = new TMediatek(); // ComPort->Create();
        MtkCom->SetComPort(bDumpPort,ulDumpBaud,bDumpDataBit,cDumpParity,bDumpStopBit);

        printf("\nCOMMUNICATION \n");
        printf("----------------------\n");
        printf("PORT    : COM%i\n",    bDumpPort);
        printf("BAUD    : %i\n",       ulDumpBaud);
        printf("DATA    : %i\n",       bDumpDataBit);
        printf("PARITY  : %c\n",       mParity(cDumpParity));
        printf("STOP    : %.1f\n",     mStopBit(bDumpStopBit));

        // Set Mediatek COM delay and retry
        MtkCom->SetComRetry(bDumpRetry, bDumpDelay);

        printf("----------------------\n");
        printf("RETRY   : %i\n",       bDumpRetry);
        printf("DELAY   : %i\n",       bDumpDelay);
        printf("\n");


    // *********************************
    //  START DUMPING
    // *********************************

		// Print main log
        printf("------------------------------------------\n");
		printf("MEMDUMP -->\n");
        printf("------------------------------------------\n");

        ulBytesRead = ulLength;

#ifdef THREAD
        ThreadParam.This = MtkCom;
        ThreadParam.bTargetMem = bTarget;
        ThreadParam.ulAddress = ulAddress;
        ThreadParam.ulLength = &ulBytesRead;
        ThreadParam.ptrBuffer = &pszBuffer;

        Thread = (HANDLE) _beginthread(StartRead, 0, &ThreadParam);

        while(WaitForSingleObject( Thread, 75L ) == WAIT_TIMEOUT)
        {
            printf("\rProgress : %i / Time : %i s / Speed : %.2f", (int)(MtkCom->Progress * 100), (MtkCom->ElapsedTime / 1000),  (ulLength * MtkCom->Progress)/(1+MtkCom->ElapsedTime));
            Sleep(100);
        }

        printf("\n");
        iRet = MtkCom->Error;
#else
        iRet = MtkCom->ReadMemory(ulAddress, ulBytesRead, bTarget, &pszBuffer);
#endif
        // Convert Mediatek return value to EXIT
        if(iRet == MEDIATEK_RET_TRUE)
        {
            iRet = EXIT_SUCCESS;
        }
        else
        {
            iRet = EXIT_FAILURE;
        }

        // Close port
        delete MtkCom;

        // Write to output file
        fwrite(pszBuffer, 1, ulBytesRead, file);

		// Close output file
		fclose(file);

		// Print length
		printf("- Memdump %d of %d bytes\n", ulBytesRead, ulLength);

		// Print main log
        printf("------------------------------------------\n");
		printf("<-- MEMDUMP\n");
        printf("------------------------------------------\n");
	}

	catch(char *Text)
	{
		printf("ERROR : %s\n", Text);

		// Close output file
		if (file != NULL)
			fclose(file);

        // Close Port
        delete (MtkCom);
        return EXIT_FAILURE;
	}

	catch(...)
	{
		printf("ERROR : Can't start memory dump");

		// Close output file
		if (file != NULL)
			fclose(file);

        // Close Port
        delete (MtkCom);
        return EXIT_FAILURE;
	}

    return iRet;
}

// **********************************************************************
//  WRITE TO MEMORY
// **********************************************************************

int DumpWrite(char filename[255])
{
	char *ptrBuf;  							// Temp buffer for in file
    iDumpLength = ReadFileToBuf(filename, &ptrBuf);

    if(iDumpLength <= 0)
        return EXIT_FAILURE;

    return EXIT_SUCCESS;
}

// **********************************************************************
//  BACKUP FLASH
// **********************************************************************

int FlashRead(char filename[255])
{
    FILE *file;
    uchar *pszBuffer;  							// Temp buffer for in file

    int   iRet;
    ulong ulBytesRead;
    ulong ulAddress;
    ulong ulLength;
    uchar bTarget;
    TMediatek *MtkCom;

//  double dTickRatio;
//  int iTickCount;

    try
    {
        if(iDumpLength == -1)
        {
            // Error no read or write selected
            printf("- No read length set (/l=LONG)\n");
            return EXIT_FAILURE;
        }

        // Open output file
        file = fopen(filename, "wb");
        if (file == NULL)
        {
            printf("- Failed to open output file '%s'\n", filename);
            return EXIT_FAILURE;
        }

        // Convert address from int to ulong
        ulAddress = (ulong) iDumpAddress;
        ulLength  = (ulong) iDumpLength;
        bTarget = bDumpTargetMem;

        printf("\nSTART FLASH READ\n");
        printf("----------------------\n");
        printf("ADDRESS : 0x%X\n",     ulAddress);
        printf("LENGTH  : %d bytes\n", ulLength);
        printf("TARGET  : %d\n",       bTarget);
        printf("OUTPUT  : %s\n",       filename);

        // Create Mediatek COM
        MtkCom = new TMediatek(); // ComPort->Create();
        MtkCom->SetComPort(bDumpPort,ulDumpBaud,bDumpDataBit,cDumpParity,bDumpStopBit);

        printf("\nCOMMUNICATION \n");
        printf("----------------------\n");
        printf("PORT    : COM%i\n",    bDumpPort);
        printf("BAUD    : %i\n",       ulDumpBaud);
        printf("DATA    : %i\n",       bDumpDataBit);
        printf("PARITY  : %c\n",       mParity(cDumpParity));
        printf("STOP    : %.1f\n",     mStopBit(bDumpStopBit));

        // Set Mediatek COM delay and retry
        MtkCom->SetComRetry(bDumpRetry, bDumpDelay);

        printf("----------------------\n");
        printf("RETRY   : %i\n",       bDumpRetry);
        printf("DELAY   : %i\n",       bDumpDelay);
        printf("\n");

    // *********************************
    //  START FLASH BACKUP
    // *********************************

		// Print main log
        printf("------------------------------------------\n");
		printf("BACKUP -->\n");
        printf("------------------------------------------\n");

        ulBytesRead = ulLength;
        iRet = MtkCom->ReadFlash(ulAddress, ulBytesRead, &pszBuffer);

        // Convert Mediatek return value to EXIT
        if(iRet == MEDIATEK_RET_TRUE)
        {
            iRet = EXIT_SUCCESS;
        }
        else
        {
            iRet = EXIT_FAILURE;
        }

        // Close port
        delete MtkCom;

        // Write to output file
        fwrite(pszBuffer, 1, ulBytesRead, file);

		// Close output file
		fclose(file);

		// Print length
		printf("- Backup %d of %d bytes\n", ulBytesRead, ulLength);

		// Print main log
        printf("------------------------------------------\n");
		printf("<-- BACKUP\n");
        printf("------------------------------------------\n");
	}

	catch(char *Text)
	{
		printf("ERROR : %s\n", Text);

		// Close output file
		if (file != NULL)
			fclose(file);

        // Close Port
        delete (MtkCom);
        return EXIT_FAILURE;
	}

	catch(...)
	{
		printf("ERROR : Can't start flash backup");

		// Close output file
		if (file != NULL)
			fclose(file);

        // Close Port
        delete (MtkCom);
        return EXIT_FAILURE;
	}

    return iRet;
}

// **********************************************************************
//  MAIN
// **********************************************************************

int main(int argc,char *argv[])
{
    char filename[255];           			// File pointers
    int iRet;

	printf("MTK Memory Dumper v0.1b\n");
	printf("Copyright (c) MaBreaker 2006\n\n");

	if (argc == 1)
	{
		// If no arguments we call the Usage routine and exit
		Usage(argv[0]);
		return EXIT_FAILURE;
	}

    // Init default values
    Init();

	// Handle the program options
	iRet = HandleOptions(argc,argv);

    if(iRet <= 0)
    {
        // File defined
        fprintf(stderr,"- No input / output file\n");
        return EXIT_FAILURE;
    }

    // Check dump mode
    if((bDumpRead == false) && (bDumpWrite == false))
    {
        // Error no read or write selected
        fprintf(stderr,"No read or write mode set(/r or /w)\n");
        return EXIT_FAILURE;
    }

    // Check dump filename
    if(strlen(argv[iRet]) >= 255)
    {
        fprintf(stderr,"- Too long filename %s\n", argv[iRet]);
		return EXIT_FAILURE;
    }

    strcpy(filename, argv[iRet]);

    // Check dump address
    if(iDumpAddress == -1)
    {
        fprintf(stderr,"- Address is not set (/a)\n");
		return EXIT_FAILURE;
    }

    // Check dump target memeory
    if((bDumpTargetMem == TARGET_NULL) || (bDumpTargetMem >= TARGET_END))
    {
        fprintf(stderr,"- Target mem not set (/m)\n");
		return EXIT_FAILURE;
    }

    // Start dump
    if (bDumpRead)
    {
        if(bDumpTargetMem == TARGET_FLASH)
        {
            iRet = FlashRead(filename);
        }
        else
        {
            iRet = DumpRead(filename);
        }
    }
    else if (bDumpWrite)
    {
        iRet = DumpWrite(filename);
    }
    else
    {
        // Newer happens
    }

    printf("------------------------------------------\n");
    if(iRet != EXIT_SUCCESS)
    {
		printf("Dump FAILED !!!\n");
		iRet = EXIT_FAILURE;
    }
    else
    {
    	printf("Dump success !\n");
    }
    printf("------------------------------------------\n");

	return iRet;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久理论电影网| 亚洲男人的天堂在线观看| 色婷婷一区二区三区四区| 人妖欧美一区二区| 亚洲欧美一区二区三区孕妇| 久久久久99精品一区| 制服丝袜中文字幕亚洲| 99久久精品国产麻豆演员表| 男女视频一区二区| 亚洲高清在线精品| 椎名由奈av一区二区三区| 久久美女高清视频| 欧美成人精品高清在线播放 | 不卡一区二区中文字幕| 美女高潮久久久| 亚洲国产精品一区二区久久恐怖片| 久久久久久久久久看片| 日韩欧美综合一区| 欧美年轻男男videosbes| 色综合久久久久网| av在线播放成人| 成人污污视频在线观看| 伦理电影国产精品| 免费在线观看日韩欧美| 婷婷一区二区三区| 一区二区三区在线观看国产| 国产精品乱码久久久久久| 久久蜜桃一区二区| 久久久久9999亚洲精品| 欧美大片日本大片免费观看| 制服丝袜国产精品| 91麻豆精品国产91久久久久久久久| 91福利精品第一导航| 日本国产一区二区| 色香蕉久久蜜桃| 91福利社在线观看| 欧美日韩精品一区二区三区四区 | 久久99精品国产麻豆婷婷| 日韩在线一二三区| 午夜精品123| 五月激情六月综合| 日本大胆欧美人术艺术动态| 天天色综合天天| 丝袜亚洲另类欧美综合| 蜜桃视频在线一区| 久久精品久久综合| 韩国女主播一区| 国产黄色91视频| av电影在线观看完整版一区二区| 99久久夜色精品国产网站| 91视频免费观看| 在线精品视频免费观看| 欧美日韩国产美女| 欧美岛国在线观看| 欧美激情一区三区| 伊人婷婷欧美激情| 免费欧美在线视频| 国产乱码精品1区2区3区| 国产69精品久久久久毛片 | 91久久精品一区二区三| 欧洲在线/亚洲| 91精品国产91久久久久久最新毛片 | 久久99精品国产91久久来源| 经典三级视频一区| 99久久婷婷国产| 欧美日本在线看| www国产亚洲精品久久麻豆| 国产精品系列在线| 亚洲一卡二卡三卡四卡| 精品在线观看免费| 成人综合婷婷国产精品久久免费| 91九色02白丝porn| 久久综合久久综合九色| 亚洲人成小说网站色在线| 日本在线不卡视频一二三区| 国产成人在线色| 色婷婷久久一区二区三区麻豆| 在线综合亚洲欧美在线视频| 久久久久久久久久久久久女国产乱| 中文字幕一区日韩精品欧美| 亚洲国产精品久久久久婷婷884| 蜜桃av噜噜一区二区三区小说| 成人丝袜高跟foot| 欧美人体做爰大胆视频| 国产三级精品三级| 午夜在线电影亚洲一区| 国产成人免费网站| 欧美日韩国产区一| 亚洲欧洲日韩在线| 韩国av一区二区| 91成人在线免费观看| 国产色产综合色产在线视频| 亚洲国产精品欧美一二99| 国产一区二区三区视频在线播放| 色一情一乱一乱一91av| 久久久噜噜噜久久人人看| 午夜欧美在线一二页| 成人av手机在线观看| 日韩一区二区高清| 一区二区三区久久| 成人夜色视频网站在线观看| 日韩视频在线永久播放| 一区二区三区欧美| 成人av动漫网站| 久久久高清一区二区三区| 午夜国产精品一区| 99视频在线精品| 国产日韩视频一区二区三区| 蜜桃视频在线一区| 9191成人精品久久| 亚洲精品乱码久久久久久日本蜜臀| 国产精品中文字幕一区二区三区| 91.麻豆视频| 一二三四社区欧美黄| 91在线丨porny丨国产| 国产亚洲美州欧州综合国| 麻豆成人综合网| 欧美一区二区三区视频在线| 亚洲高清不卡在线观看| 99久久国产综合精品女不卡| 国产人妖乱国产精品人妖| 国产一区二区三区电影在线观看| 欧美久久久久久久久| 亚洲成人av福利| 欧美日韩国产综合一区二区| 亚洲自拍偷拍av| 欧美优质美女网站| 亚洲一区二区五区| 欧美性极品少妇| 一级中文字幕一区二区| 色视频一区二区| 一区二区三区美女视频| 欧美在线不卡视频| 亚洲第一狼人社区| 欧美日韩国产小视频| 日韩黄色免费网站| 日韩你懂的在线观看| 久久精品国产77777蜜臀| 日韩欧美中文字幕精品| 美女任你摸久久| 精品国产91亚洲一区二区三区婷婷| 久久99国产精品免费| 精品国产一区二区在线观看| 麻豆精品在线播放| 国产欧美一区二区三区网站| 国产乱码精品一区二区三区忘忧草 | 精品久久久久久久一区二区蜜臀| 美女一区二区在线观看| 久久亚洲欧美国产精品乐播 | 亚洲国产日韩在线一区模特| 欧美亚洲禁片免费| 爽好久久久欧美精品| 日韩精品一区二区三区视频| 国产一区二区三区免费播放| 久久久久久97三级| 91免费看`日韩一区二区| 亚洲自拍偷拍图区| 日韩一级在线观看| 国产麻豆精品视频| 成人免费在线观看入口| 欧美三电影在线| 免播放器亚洲一区| 亚洲精品国产精品乱码不99| 欧美日韩久久久一区| 精品一区二区免费视频| 中文字幕国产精品一区二区| 色综合一个色综合| 奇米精品一区二区三区在线观看一| 久久久精品欧美丰满| 91高清视频在线| 精品一区二区三区的国产在线播放| 欧美极品aⅴ影院| 欧美在线一二三四区| 国内精品第一页| 亚洲欧美福利一区二区| 欧美一区二区三区日韩| aaa国产一区| 麻豆国产欧美一区二区三区| 国产精品人人做人人爽人人添| 欧美三电影在线| 国产成人亚洲综合a∨婷婷| 一级特黄大欧美久久久| 久久综合一区二区| 在线免费观看不卡av| 国产成人无遮挡在线视频| 亚洲一二三区视频在线观看| 精品国产凹凸成av人导航| 91久久精品网| 成人小视频在线| 日韩va欧美va亚洲va久久| 1024成人网| 精品乱人伦小说| 欧美日韩中文另类| 99精品视频免费在线观看| 美女视频黄免费的久久| 一片黄亚洲嫩模| 中文字幕在线观看不卡| 精品国产乱码久久久久久浪潮| 在线观看欧美黄色| 99热这里都是精品|