none
上网填写的“用户名”和“密码”保存在哪里?? RRS feed

  • 问题

  • 请问各位高手:上网填写的“用户名”和“密码”保存在哪里?

    有人说保存在C:\Documents and Settings\用户名\Cookies里面,其实根本不是!我做过试验,把这个文件夹里的内容全部删除,那些东西仍然还在,上网时仍然有效。至于整个C盘中的Cookies文件夹,也只有这个里面有很多记录,其它的则只有一个文件:index.dat在里面了。

     

    我的目的是要把它们找出来,移植到新安装的系统中,并非要删除它们!

    网页中的“文件”→导入和导出→导出Cookie,在新系统中再导入Cookies,这个功能也没有什么用!

    请真正的高手帮助,谢谢!

    2009年1月19日 10:39

全部回复

  • 从别人的讨论来看,是无法做到的,国外的网友的讨论

     

    http://www.eggheadcafe.com/software/aspnet/31476711/transfer-ie-6-username-an.aspx

     

    不过,有现成的工具可以查看保存的密码

     

    http://www.nirsoft.net/utils/iepv.zip

     

    http://www.nirsoft.net/utils/pspv.html

     

    2009年1月19日 12:16
    版主
  •  孟宪会 写:

    从别人的讨论来看,是无法做到的,国外的网友的讨论

     

    http://www.eggheadcafe.com/software/aspnet/31476711/transfer-ie-6-username-an.aspx

     

    不过,有现成的工具可以查看保存的密码

     

    http://www.nirsoft.net/utils/iepv.zip

     

    http://www.nirsoft.net/utils/pspv.html

     

    版主你好!

    你给的那个网址里的问题实际上不是问题(可见外国人也有许多水平很低)!如果不重装系统,IE6里面的所有个人信息(不只是用户名和密码,还包括搜索过的内容等等)都会原封不动的、自然地(不需要你管)移植到IE7或者IE8里面,这些都是本人实践过的,绝对无误。一旦重装系统,尽管仍然是IE6,也不管用了,这就是我希望解决的问题了。

    国内有很多文章说“小甜饼”泄露个人信息、每个浏览过的网站都有只有网站自己能识别的个人信息在小甜饼里、如何编写小甜饼程序等等,依据这些理论反向,只要把“小甜饼”保留下来并把它放到新系统里不是就可以了吗?……

    真不知道这些“侃侃而谈”的理论是怎么凭空想象出来的!“最权威”的解释应该是:

     

    http://baike.baidu.com/view/1311.htm

     

    我不懂编程,但非常愿意实践。我认为:用户名和密码及表单既然能够简单地“被删除”,就应该有“被提取”的方法。

    至于3楼的回答,我就不想评论了。那个文件是每台电脑及几乎每个位置的都一样(公用文件)。

    2009年1月20日 0:26
  • 既然工具可以看到密码,那肯定是知道保存在什么位置的。从资料看,应该是保存在用户的配置文件里,我的电脑-属性-系统属性-高级-用户配置文件

     

    2009年1月20日 8:16
    版主
  •  孟宪会 写:
    既然工具可以看到密码,那肯定是知道保存在什么位置的。从资料看,应该是保存在用户的配置文件里,我的电脑-属性-系统属性-高级-用户配置文件

     

    这个文件可不小,如本机的配置文件有422M(可能它会包含要用的信息)。可是又到哪里去复制它呢?该处的“复制到”的按钮无效(灰色)。

    如果说这个文件就是C:\Documents and Settings\用户名的话,那么“用户名”这个文件夹总大小是1.79G,在它下面的任何一个文件的大小都不是422M,甚至没有一个文件接近这个大小,再往下,Local Settings这个文件夹有1.31G,同样没有相匹配的文件。

    2009年1月20日 23:30
  •  

    文件保存在C:\Documents and Settings\你的用户名\Application Data\Microsoft\Credentials\

     

    里面有个隐藏的  guid目录  就是你的用户guid

    里面的Credentials

    就是你要的答案

     

    我修改纪录的密码  第一时间这个文件被更新了

     

    但是格式我不清楚   有可能因为一些加密方法导致无法被别的机器读取

     

     

    但是我记得   windows xp 有用户迁移向导  不知道能不能正确的迁移

    2009年1月21日 4:49
  •  韦恩卑鄙 写:

     

    文件保存在C:\Documents and Settings\你的用户名\Application Data\Microsoft\Credentials\

     

    里面有个隐藏的  guid目录  就是你的用户guid

    里面的Credentials

    就是你要的答案

     

    我修改纪录的密码  第一时间这个文件被更新了

     

    但是格式我不清楚   有可能因为一些加密方法导致无法被别的机器读取

     

     

    但是我记得   windows xp 有用户迁移向导  不知道能不能正确的迁移

     

    谢谢你的回答!我立即查看了Credentials文件夹,在它下面还有二个文件夹:一个为空,另一个刚好只有你说的那个文件:Credentials(是系统文件,但无扩展名),文件大小有868b。同时我也查看了其它台电脑的该文件夹,里面却没有这个文件!本来到此我就可以判断你的答案的可信度了,但我还是把这个文件夹复制到新系统里去试试。结果你应该知道了。

    这个文件的修改时间和查看时间总是一样的,而我并没有作什么更改。

     

    但是我记得   windows xp 有用户迁移向导  不知道能不能正确的迁移”请问你:这个向导在哪里(请注意我的主题贴内容)?
    2009年1月21日 14:24
  • 我误会了?  我以为你说的是 windows 自动保存的自动完成。  难道不是么?

     

    >同时我也查看了其它台电脑的该文件夹,里面却没有这个文件!

    没有保存自动完成的密码的机器  自然没有这个文件

     

    >但我还是把这个文件夹复制到新系统里去试试。结果你应该知道了。

    这是当然的  不同机器如果能直接复制文件 而不必打开自动完成功能的话  那还真是神了

    不同机器用户的guid不一样 文件夹 名字自然也不一样   我已经说得很清楚了 是用户对应的GUID

    而且我也提到了 可能会因为机器key加密  导致别的机器无法读取

     

     

    xp文件设置迁移向导  在  %SYSTEMROOT%\system32\usmt\migwiz.exe

     

    这个确实没有测试过是否能够迁移自动完成的密码

     

     

    希望你能够虚心理解别人提供的答案   起码了解下那个文件名字的英文字面意思再说别的

     

     

     

     

     

    2009年1月23日 2:25
  •  韦恩卑鄙 写:

    我误会了?  我以为你说的是 windows 自动保存的自动完成。  难道不是么?

     

    >同时我也查看了其它台电脑的该文件夹,里面却没有这个文件!

    没有保存自动完成的密码的机器  自然没有这个文件

     

    >但我还是把这个文件夹复制到新系统里去试试。结果你应该知道了。

    这是当然的  不同机器如果能直接复制文件 而不必打开自动完成功能的话  那还真是神了

    不同机器用户的guid不一样 文件夹 名字自然也不一样   我已经说得很清楚了 是用户对应的GUID

    而且我也提到了 可能会因为机器key加密  导致别的机器无法读取

     

     

    xp文件设置迁移向导  在  %SYSTEMROOT%\system32\usmt\migwiz.exe

     

    这个确实没有测试过是否能够迁移自动完成的密码

     

     

    希望你能够虚心理解别人提供的答案   起码了解下那个文件名字的英文字面意思再说别的

     

     

     

     

     

    也希望你能认真阅读、理解要回答的问题。

    如果本人连“概念”都不清,能写下这些内容吗?

    本人管理的电脑绝对是一种工作方式;本人专用的电脑,绝对信息一致!

    在办公桌上有二部电话机的人很多,有二台电脑的人多吗?

    不要总以为唯自己清醒别人糊涂(原来你比我想象的要低得多)!自己去多看几台都工作在“自动完成”的电脑里是否都有那个文件再来说吧!不要臆断,实践后再来说不迟!

    我发的贴不多,去看看你能回答几个。

    2009年1月23日 3:15
  •  mgljk 写:
     韦恩卑鄙 写:

    我误会了?  我以为你说的是 windows 自动保存的自动完成。  难道不是么?

     

    >同时我也查看了其它台电脑的该文件夹,里面却没有这个文件!

    没有保存自动完成的密码的机器  自然没有这个文件

     

    >但我还是把这个文件夹复制到新系统里去试试。结果你应该知道了。

    这是当然的  不同机器如果能直接复制文件 而不必打开自动完成功能的话  那还真是神了

    不同机器用户的guid不一样 文件夹 名字自然也不一样   我已经说得很清楚了 是用户对应的GUID

    而且我也提到了 可能会因为机器key加密  导致别的机器无法读取

     

     

    xp文件设置迁移向导  在  %SYSTEMROOT%\system32\usmt\migwiz.exe

     

    这个确实没有测试过是否能够迁移自动完成的密码

     

     

    希望你能够虚心理解别人提供的答案   起码了解下那个文件名字的英文字面意思再说别的

     

     

     

     

     

    也希望你能认真阅读要回答的问题。

    如果本人连“概念”都不清,能写下这些内容吗?本人管理的电脑绝对是一种工作方式;本人专用的电脑,绝对信息一致!

    不要总以为唯自己清醒别人糊涂(原来你比我想象的要低得多)!自己去多看几台都工作在“自动完成”的电脑里是否都有那个文件再来说吧!不要臆断,实践后再来说不迟!

    我发的贴不多,去看看你能回答几个。

     

    请再次阅读我回答中关于

    新安装的系统中 提到 同样名字的用户名  guid 不同的片断

    收回“本人专用的电脑,绝对信息一致”之类的臆断

     

    另外向你道歉  我给你的方法适用于  网站弹出窗口的window权限密码 

    而不适用自动完成  自动完成是保存在 cookie里面的 index.dat文件的  而且有某种程度的加密 

    通过拷贝并不可以直接恢复到别的系统中

    2009年1月23日 3:56
  • 另外 IE7的文件夹可能是在 history

     

    以下是对于 ie7  index.dat的读取文件的c算法

     

    有兴趣可以自己写下

     

     

     

     

     

     

     

     

     

     

    以下为引用------------------------------------------------------------------------------------------------------------------------------------

     

    前一阵子自己邮箱的口令忘记了,为了找回邮箱口令到网上找了好多密码找回的工具,发现在IE7下都不好使,迫于无奈,只好自己研究了,通过Google和 OllyDbg,用了1整天时间终于弄清楚了IE7下的自动完成口令获取方法,不敢独享,特公布如下,希望能对大家有帮助。

    自Internet Explorer 7.0开始,微软完全改变了密码保存的方式,将网站的URL保存于历史文件中,将自动完成的密码保存于注册表中的以下位置: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2。


    要获取IE7的自动完成口令就需要同时获取IE7环境下历史文件夹中的URL记录和注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2下的密码信息。

    以下是IE7自动完成口令获取的步骤:

    1、用ShGetSpecialFolder获取History文件夹路径
    2、枚举History文件夹下的index.dat文件,并从index.dat文件中提取访问过的网站URL。
    index.dat文件结构:
    文件头32字节
    从文件的第0x5000地址处开始存放的是访问过的网站信息,网站信息顺序存放,每个网站数据块结构为:
    struct Web{
    const char Tag[4]; //4个字节的标志,内容为"URL ",可作为数据是否正确的判断。
    int LenNumber;  //该数据块的长度指数,数据块的长度为LenNumber*128
    char unknown[44]; //44字节的未知数据
    int DataPos;  //Visited:字段相对于该结构块头的偏移值,即&Web+DataPos就指向Visited了
    char unknown[];  //不定长度未知数据,不过据观察似乎上述DataPos都是一样的,那这个也应该定长了,算了,不管他,安全起见,就当不定长了
    const char Tag1Music;     //"Visited:"
    char Data[];  //结构 XXX@????,其中XXX是用户名,???就是URL,可以从Visited处搜索@来定位
    char Unknown[];  //长度不定
    };
    注意,上述结构中的URL是ANSI形式的
    3、打开注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2,枚举其Values
    注册表该位置保存的是IE7自动完成的用户名密码之类,其中ValueName就是经过Hash的网站的URL,ValueData就是加密的用户名密码之类了。
    4、对第2步获取的URL依次进行Hash,然后用其Hash值依次与第三步中获取的ValueName进行比较,一致的就是该URL的信息
    如果一致,就对ValueData进行解密。
    ValueData解密后数据结构

    struct ValueData{
    int HeadLen;//4字节,用来表示该数据结构的头部长度。
    int DataPos;//真正的数据相对于数据结构头部的偏移,即:&ValueData+HeadLen+DataPos就指向有效数据了
    int DataLen;//有效数据的长度
    char unknown[];
    wchar UserName[];
    wchar Password[];
    };
    HeadLen+HeadLen+DataPos=sizeof(ValueData);

    注:
    1、Hash算法:
    //Algorithm=0x8004
    //0x8004=ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA1=CALG_SHA1,原来采用的是CALG_SHA1算法
    //注意:此处这个DataLen是带Unicode的结尾的0的
    BOOL HashData(WCHAR *pData,int DataLen, char *pHashData,int *pHashLen,int Algorithm)
    {
    BOOL bResult = TRUE;
    HCRYPTPROV hProv = NULL;
    HCRYPTHASH hHash = NULL;
    DWORD dwLength;

    // Get handle to user default provider.
    if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))//0xF0000000)) //两个都行,不知道最后一个参数是干什么的
    {
    // Create hash object.
    if (CryptCreateHash(hProv, Algorithm, 0, 0, &hHash))
    {
    // Hash password string.
    if (CryptHashData(hHash, (BYTE *)pData, DataLen, 0))
    {
    CryptGetHashParam(hHash,2,(BYTE*)pHashData,(DWORD*)pHashLen,0);
    }
    else
    {
    // Error during CryptHashData!
    bResult = FALSE;
    }
    CryptDestroyHash(hHash); // Destroy session key.
    }
    else
    {
    // Error during CryptCreateHash!
    bResult = FALSE;
    }
    CryptReleaseContext(hProv, 0);
    }
    return bResult;

    }
    2、解密算法:
    unsigned char pcryptdata[]={ //注册表中提取出来的ValueData,即加密过的用户名密码等信息
    0x01,0x00,0x00,0x00,0xD0,0x8C,0x9D,0xDF,0x01,0x15,0xD1,0x11,0x8C,0x7A,0x00,0xC0,0x4F,0xC2,0x97,0xEB,0x01,0x00,0x00,0x00,0x58,0x26,0xE4,0x1A,0x81,0x86,0x2F,0x4D,
    0xA9,0x19,0x95,0xED,0x94,0x6F,0xC5,0x2A,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x66,0x00,0x00,0xA8,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xB5,0x67,
    0x51,0xE5,0x1A,0x73,0x67,0x75,0x0F,0x84,0xF2,0x97,0xCE,0x07,0x21,0x31,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0xA0,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x75,0xFB,
    0x3F,0xC8,0x4C,0x7F,0xDB,0xBA,0xC8,0x27,0xD9,0xC0,0x64,0xD8,0x05,0xEF,0x68,0x00,0x00,0x00,0x50,0x63,0x0F,0x8B,0x7B,0xBC,0xDF,0x96,0xFD,0xE4,0x11,0xEB,0x97,0x43,
    0xD8,0x4E,0x7C,0xB6,0x96,0x55,0xA6,0xB5,0x50,0x41,0x5D,0xD5,0xA7,0x4B,0xFA,0x16,0x4E,0x65,0xF5,0xB6,0x0D,0xC5,0xC1,0xCE,0xEB,0x3D,0x28,0x79,0xA2,0xBD,0xAA,0x97,
    0x9D,0x31,0xE8,0x84,0xBD,0xC5,0x49,0x74,0x64,0x40,0xFA,0x09,0xE5,0x2C,0x0F,0x27,0xD7,0x65,0x9D,0xAF,0x39,0x80,0x89,0x70,0x4C,0x43,0x65,0x5F,0xDC,0x0A,0xF1,0x7E,
    0x8E,0x35,0x61,0x4F,0xDB,0x84,0xFC,0x50,0xE7,0x96,0x1A,0xAE,0x12,0x82,0x2D,0xE6,0x3A,0x0A,0x86,0xA7,0xA7,0x60,0x30,0x99,0x54,0xA7,0x14,0x00,0x00,0x00,0x5B,0xA4,
    0x89,0xFF,0xE6,0x48,0x4B,0x05,0x28,0xCF,0xFF,0x28,0xDC,0x11,0x46,0xCB,0x26,0x5D,0x9A,0x0F
    };
    WCHAR Test[]=L"http://www.devdao.com\0";   //通过对URL进行HASH并与ValueName进行比对获取的URL地址
    DATA_BLOB DataOut;
    if(Decrypt(Test,74,pcryptdata,0xf2,&DataOut))
    {
    for(int i=0;i<DataOut.cbData;i++)
    {
    printf("%c",DataOut.pbData);
    }
    printf("\r\nOver\r\n");
    }

    bool Decrypt(WCHAR *pURL,int URLLen,unsigned char * pCryptedData,int CryptedLen,DATA_BLOB *pDataOut)//解密用
    {
    DATA_BLOB DataIn;
    //DATA_BLOB DataOut;
    DATA_BLOB DescrOut;

    DataIn.pbData=pCryptedData;
    DataIn.cbData=CryptedLen;

    DescrOut.cbData=URLLen;
    DescrOut.pbData=(unsigned char *)pURL;
    if(CryptUnprotectData(&DataIn,NULL,&DescrOut,NULL,NULL,0,pDataOut))
    {
    //pBuffer=DataOut.pbData;
    return true;
    }
    else
    return false;
    }

    前一阵子自己邮箱的口令忘记了,为了找回邮箱口令到网上找了好多密码找回的工具,发现在IE7下都不好使,迫于无奈,只好自己研究了,通过Google和 OllyDbg,用了1整天时间终于弄清楚了IE7下的自动完成口令获取方法,不敢独享,特公布如下,希望能对大家有帮助。

    自Internet Explorer 7.0开始,微软完全改变了密码保存的方式,将网站的URL保存于历史文件中,将自动完成的密码保存于注册表中的以下位置: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2。


    要获取IE7的自动完成口令就需要同时获取IE7环境下历史文件夹中的URL记录和注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2下的密码信息。

    以下是IE7自动完成口令获取的步骤:

    1、用ShGetSpecialFolder获取History文件夹路径
    2、枚举History文件夹下的index.dat文件,并从index.dat文件中提取访问过的网站URL。
    index.dat文件结构:
    文件头32字节
    从文件的第0x5000地址处开始存放的是访问过的网站信息,网站信息顺序存放,每个网站数据块结构为:
    struct Web{
    const char Tag[4]; //4个字节的标志,内容为"URL ",可作为数据是否正确的判断。
    int LenNumber;  //该数据块的长度指数,数据块的长度为LenNumber*128
    char unknown[44]; //44字节的未知数据
    int DataPos;  //Visited:字段相对于该结构块头的偏移值,即&Web+DataPos就指向Visited了
    char unknown[];  //不定长度未知数据,不过据观察似乎上述DataPos都是一样的,那这个也应该定长了,算了,不管他,安全起见,就当不定长了
    const char Tag1Music;     //"Visited:"
    char Data[];  //结构 XXX@????,其中XXX是用户名,???就是URL,可以从Visited处搜索@来定位
    char Unknown[];  //长度不定
    };
    注意,上述结构中的URL是ANSI形式的
    3、打开注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2,枚举其Values
    注册表该位置保存的是IE7自动完成的用户名密码之类,其中ValueName就是经过Hash的网站的URL,ValueData就是加密的用户名密码之类了。
    4、对第2步获取的URL依次进行Hash,然后用其Hash值依次与第三步中获取的ValueName进行比较,一致的就是该URL的信息
    如果一致,就对ValueData进行解密。
    ValueData解密后数据结构

    struct ValueData{
    int HeadLen;//4字节,用来表示该数据结构的头部长度。
    int DataPos;//真正的数据相对于数据结构头部的偏移,即:&ValueData+HeadLen+DataPos就指向有效数据了
    int DataLen;//有效数据的长度
    char unknown[];
    wchar UserName[];
    wchar Password[];
    };
    HeadLen+HeadLen+DataPos=sizeof(ValueData);

    注:
    1、Hash算法:
    //Algorithm=0x8004
    //0x8004=ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA1=CALG_SHA1,原来采用的是CALG_SHA1算法
    //注意:此处这个DataLen是带Unicode的结尾的0的
    BOOL HashData(WCHAR *pData,int DataLen, char *pHashData,int *pHashLen,int Algorithm)
    {
    BOOL bResult = TRUE;
    HCRYPTPROV hProv = NULL;
    HCRYPTHASH hHash = NULL;
    DWORD dwLength;

    // Get handle to user default provider.
    if (CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0))//0xF0000000)) //两个都行,不知道最后一个参数是干什么的
    {
    // Create hash object.
    if (CryptCreateHash(hProv, Algorithm, 0, 0, &hHash))
    {
    // Hash password string.
    if (CryptHashData(hHash, (BYTE *)pData, DataLen, 0))
    {
    CryptGetHashParam(hHash,2,(BYTE*)pHashData,(DWORD*)pHashLen,0);
    }
    else
    {
    // Error during CryptHashData!
    bResult = FALSE;
    }
    CryptDestroyHash(hHash); // Destroy session key.
    }
    else
    {
    // Error during CryptCreateHash!
    bResult = FALSE;
    }
    CryptReleaseContext(hProv, 0);
    }
    return bResult;

    }
    2、解密算法:
    unsigned char pcryptdata[]={ //注册表中提取出来的ValueData,即加密过的用户名密码等信息
    0x01,0x00,0x00,0x00,0xD0,0x8C,0x9D,0xDF,0x01,0x15,0xD1,0x11,0x8C,0x7A,0x00,0xC0,0x4F,0xC2,0x97,0xEB,0x01,0x00,0x00,0x00,0x58,0x26,0xE4,0x1A,0x81,0x86,0x2F,0x4D,
    0xA9,0x19,0x95,0xED,0x94,0x6F,0xC5,0x2A,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x66,0x00,0x00,0xA8,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xB5,0x67,
    0x51,0xE5,0x1A,0x73,0x67,0x75,0x0F,0x84,0xF2,0x97,0xCE,0x07,0x21,0x31,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0xA0,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x75,0xFB,
    0x3F,0xC8,0x4C,0x7F,0xDB,0xBA,0xC8,0x27,0xD9,0xC0,0x64,0xD8,0x05,0xEF,0x68,0x00,0x00,0x00,0x50,0x63,0x0F,0x8B,0x7B,0xBC,0xDF,0x96,0xFD,0xE4,0x11,0xEB,0x97,0x43,
    0xD8,0x4E,0x7C,0xB6,0x96,0x55,0xA6,0xB5,0x50,0x41,0x5D,0xD5,0xA7,0x4B,0xFA,0x16,0x4E,0x65,0xF5,0xB6,0x0D,0xC5,0xC1,0xCE,0xEB,0x3D,0x28,0x79,0xA2,0xBD,0xAA,0x97,
    0x9D,0x31,0xE8,0x84,0xBD,0xC5,0x49,0x74,0x64,0x40,0xFA,0x09,0xE5,0x2C,0x0F,0x27,0xD7,0x65,0x9D,0xAF,0x39,0x80,0x89,0x70,0x4C,0x43,0x65,0x5F,0xDC,0x0A,0xF1,0x7E,
    0x8E,0x35,0x61,0x4F,0xDB,0x84,0xFC,0x50,0xE7,0x96,0x1A,0xAE,0x12,0x82,0x2D,0xE6,0x3A,0x0A,0x86,0xA7,0xA7,0x60,0x30,0x99,0x54,0xA7,0x14,0x00,0x00,0x00,0x5B,0xA4,
    0x89,0xFF,0xE6,0x48,0x4B,0x05,0x28,0xCF,0xFF,0x28,0xDC,0x11,0x46,0xCB,0x26,0x5D,0x9A,0x0F
    };
    WCHAR Test[]=L"http://www.devdao.com\0";   //通过对URL进行HASH并与ValueName进行比对获取的URL地址
    DATA_BLOB DataOut;
    if(Decrypt(Test,74,pcryptdata,0xf2,&DataOut))
    {
    for(int i=0;i<DataOut.cbData;i++)
    {
    printf("%c",DataOut.pbData);
    }
    printf("\r\nOver\r\n");
    }

    bool Decrypt(WCHAR *pURL,int URLLen,unsigned char * pCryptedData,int CryptedLen,DATA_BLOB *pDataOut)//解密用
    {
    DATA_BLOB DataIn;
    //DATA_BLOB DataOut;
    DATA_BLOB DescrOut;

    DataIn.pbData=pCryptedData;
    DataIn.cbData=CryptedLen;

    DescrOut.cbData=URLLen;
    DescrOut.pbData=(unsigned char *)pURL;
    if(CryptUnprotectData(&DataIn,NULL,&DescrOut,NULL,NULL,0,pDataOut))
    {
    //pBuffer=DataOut.pbData;
    return true;
    }
    else
    return false;
    }

    资料引用:http://www.knowsky.com/441863.html

     

    2009年1月23日 4:31
  •  mgljk 写:
     

    我发的贴不多,去看看你能回答几个。

     

    已经全部回答了,有别的问题请再通知我

    2009年1月23日 4:47
  •  

    你是全部回答了,解决问题了吗?
    2009年1月23日 16:14
  •  mgljk 写:
     孟宪会 写:
    既然工具可以看到密码,那肯定是知道保存在什么位置的。从资料看,应该是保存在用户的配置文件里,我的电脑-属性-系统属性-高级-用户配置文件

     

    这个文件可不小,如本机的配置文件有422M(可能它会包含要用的信息)。可是又到哪里去复制它呢?该处的“复制到”的按钮无效(灰色)。

    如果说这个文件就是C:\Documents and Settings\用户名的话,那么“用户名”这个文件夹总大小是1.79G,在它下面的任何一个文件的大小都不是422M,甚至没有一个文件接近这个大小,再往下,Local Settings这个文件夹有1.31G,同样没有相匹配的文件。

     

    倒是在系统工具里有一个“文件和设置转移向导”,在那里,我也看不出哪个文件包含有需要的东西(应该是没有)。尽管如此,我也试验过几次,但这个“向导”往回转移的时候却永远(几个小时)都走不到最后一步:“确定”,只能用任务管理器来关闭它,以失败告终。

     

    2009年1月23日 17:22
  •  

    〉你是全部回答了,解决问题了吗?

     

    您不是最清楚最明白  给你源代码你就可以自己写一个转移程序么,

    其实连源代码都给你了这个问题已经解决了  您何必装没解决呢?

    2009年1月24日 1:53
  • 请你返回第三楼看:“我不懂编程”!知道了吗?装什么呢?难道我不懂还装懂吗?我要是懂编程的话绝对不会跑到这里来折腾!

    你要真有能耐,请你把它做成一个普通人(不懂编程的人)都能使用的“工具”,并且一定经过实践证明是“确实可行”的东西,发到网上“造福”大家吧。如果你实在没有时间试验的话,我可以为你做试验,成功了也就解决我的问题了。如何?

    由于我不懂编程,所以在网上发布了很多疑难问题,例如:如何删除“$*"文件……等。

    2009年1月24日 18:08
  • 我前俩天整合的一个工具:《CAD免疫法》,已经经过十多台电脑的检验,待经过我公司近百台电脑、不同的人试验无瑕疵后也会发到网上与大家共享的。现在网上能搜索到的所谓CAD免疫法实际上是不免疫的(要一劳永逸且简单)。

     

    2009年1月24日 19:02
  • 你这人真矫情,说话尖酸刻薄。大家到这就是寻找自己的答案,共同学习的,有必要贬低别人吗?你什么都懂还到这来干什么?做人还是要低调点!
    2009年5月19日 16:51
  • 为了批评mgljk专门创建profile。 人家好心好意帮你解决问题,就算没用那又怎么了? 谁能保证做什么就成功啊?自己不懂编程有理了? 还让别人给你做个工具,你还帮他试用一下,真有面子 别人的时间不值钱啊? 这样子谁会回答你的问题啊
    2009年5月26日 5:06