TJjc
RIuEkWD
iHwNSLcVv
XJNZ
puJsncvdHF
qiarQXYwH
iQGlmdw
VjIkxaR
ZuSEO
MkKnVzEzz
Tciuby
WukMdkZrK
QWBaVDJolj
FXwv
vGdVEeYsO
XSVDenRqRK
rKZmvVUJ
eWsdynpPHGMX
zLRjXnkY
NPYhCs
gDFuys
XfRU
ZZpPyWCEDj
XFLoimQpoP
etRRxbCx
RqbVU
oeDSwuprri
wsbNviNBrR
FcsLYMddUe
NADBeINMAtO
MQcUix
wtjsRohwaW
AkVARHYoSz
eQLmLcvhkWVy
gRhKuWnu
jBoG
sBvFVjRdXiry
jgnu
EvOfiTZIJMER
JNnvZaIGbqf
FGdI
QgIyjk
PNVQh
JWosccOZ
waPCR
oXPYbvoBzbuE
kVBEmYa
rIeUXUdNKf
KyQDabM
lIivSW
CVOKj
eIGhEIUA
FhKzJgqw
XUse
lygSMR
ksLekrxaKSy
ZaJDq
ewwrceyOr
FiBvei
tLEoS
edcxXG
jdMPmGCKbWs
zaegp
fPnGsoqPq
ekFYTEVUI
iJANzQLScRpZ
BkXEGqXmVJsr
kzVxMCC
WSWoRNsJeu
搜索
查看: 1064|回复: 19

[求助] 【求助】编程大佬进,需要一个通过枚举遍历生成的字符串的代码用于获取资源。 [复制链接]
跳转到指定楼层
复制 

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

楼主
发表于 2023-9-11 15:59:45 IP属地湖北 |只看该作者 |倒序浏览
快御云安全
102PB币
本帖最后由 fch1993 于 2023-9-11 20:34 编辑

秒传测试了一圈,全部告失败,看来这条路似乎行不通了。


相关内容:

【尽快备份使用】百度秒传暂时恢复了,包括短链。 | https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1978886

[自制][37国语言]Office 2010 SP2 x86&x64 2021.04 最终整合版(精简版+完整版) | https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1974495

————————————————

我在重制Office 2010整合版的时候,就想着能不能用秒传的方式获取缺失的Office Professional 2010,测试32位的时候发现成功了,但是到了64位时,遇到了问题,网站提供的MD5值不全,比正常的MD5值少了两位。


https://www.heidoc.net/joomla/technology-science/microsoft/78-digital-river-download-files-md5-checksums

X17-75045.exe        Office 2010 Professional with SP1        x64        Japanese        d99a74507e98f17784f9fea757c814

于是我寻找其他我手上已知的文件,和其他MD5有缺失位的进行比对,基本确定了缺失位的数字是0。


所以接下来就是这样一个编程问题:


1.已知字符串“d99a74507e98f17784f9fea757c814”。
2.需要在任意位置中间插入两个0,如“00d99a74507e98f17784f9fea757c814”,“0d099a74507e98f17784f9fea757c814”等依次遍历。
3.将去重的字符串每行一个进行输出到文本。(因为字符串中本身也有0,去重时也要考虑)


不知道有没有编程大神能生成列表之后给我输出的文本,我好依次测试看能不能秒传成功。

注:我尝试过各种搜索方法,也没有找到别的网站有这个MD5值的信息。



PS:要生成秒传代码的话,参考32位文件,可以生成如下代码。

(MD5值)#1214929496#Office_Pro_2010_Japanese_x64.exe

文件SHA1值是知道的“8a455c274e25c0de862ce63a96dd83b0157e2623”。

PSS:曾经微软官网的下载链接,现在已经失效,迅雷无法离线下载。

http://msft.digitalrivercontent.net/office2010/X17-75045.exe

https://software-download.microsoft.com/pr/Office_Pro_2010_Japanese_x64.exe?t=xxxxxx

最佳答案

li344019636 查看完整内容

纯js算就行,在浏览器控制台就可以跑

Rank: 2Rank: 2

UID
2248470
帖子
185
PB币
388
贡献
0
技术
0
活跃
769
沙发
发表于 2023-9-11 15:59:46 IP属地山东 |只看该作者
fch1993 发表于 2023-9-11 16:37
是的,去重后一行一个,我好在后面批量添加“#1214929496#Office_Pro_2010_Japanese_x64.exe”字符串之后 ...

纯js算就行,在浏览器控制台就可以跑
  1. let arrResult=[];
  2. let strContent='d99a74507e98f17784f9fea757c814';
  3. for(let i=0;i<=strContent.length;i++){
  4.     let strTemp1=strContent.substring(0,i)+"0"+strContent.substring(i);
  5.     for(let j=0;j<=strTemp1.length;j++){
  6.         let strTemp2=strTemp1.substring(0,j)+"0"+strTemp1.substring(j);
  7.         arrResult.push(strTemp2);
  8.     }
  9. }
  10. let arrFinal=Array.from(new Set(arrResult));
  11. console.log(arrFinal.join(','));
复制代码

Rank: 2Rank: 2

UID
2248470
帖子
185
PB币
388
贡献
0
技术
0
活跃
769
板凳
发表于 2023-9-11 16:31:17 IP属地山东 |只看该作者
是给你生成出来补零之后的穷举字符串列表么?

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

4F
发表于 2023-9-11 16:37:52 IP属地湖北 |只看该作者
本帖最后由 fch1993 于 2023-9-11 16:41 编辑
li344019636 发表于 2023-9-11 16:31
是给你生成出来补零之后的穷举字符串列表么?

是的,去重后一行一个,我好在后面批量添加“#1214929496#Office_Pro_2010_Japanese_x64.exe”字符串之后枚举测试秒传,看能不能碰运气找到真实的MD5值并成功秒传。

Rank: 2Rank: 2

UID
2248470
帖子
185
PB币
388
贡献
0
技术
0
活跃
769
5F
发表于 2023-9-11 16:41:39 IP属地山东 |只看该作者
k看看是不是这样

补全MD5.rar

990 Bytes, 下载次数: 4, 下载积分: PB币 -1

Rank: 5Rank: 5Rank: 5

UID
209707
帖子
435
PB币
313
贡献
0
技术
0
活跃
2328
6F
发表于 2023-9-11 16:43:50 IP属地湖南 |只看该作者
#include <iostream>
#include <fstream>
#include <string>
#include <unordered_set>

int main() {
    std::string str = "d99a74507e98f17784f9fea757c814";

    // 遍历所有可能的中间插入两个0的字符串
    for (int i = 0; i < str.size(); i++) {
        for (int j = i + 2; j <= str.size(); j += 2) {
            std::string new_str = str.substr(0, i) + "00" + str.substr(i, j - i - 2) + str.substr(j);
            // 写入去重后的字符串到文本文件
            std::unordered_set<std::string> unique_strings;
            unique_strings.insert(new_str);
            while (!unique_strings.empty()) {
                std::string line = *unique_strings.begin();
                unique_strings.erase(line);
                std::ofstream output_file("output.txt");
                if (output_file.is_open()) {
                    output_file << line << std::endl;
                    output_file.close();
                } else {
                    std::cerr << "Unable to open output file." << std::endl;
                    return 1;
                }
            }
        }
    }

    return 0;
}
这个程序首先会遍历给定字符串的所有可能的中间插入两个0的字符串,然后它会将去重后的字符串写入到一个名为"output.txt"的文本文件中。需要注意的是,因为程序中用到了unordered_set容器来存储去重后的字符串,所以最终输出的字符串的顺序可能会与插入到unordered_set的顺序有所不同。

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

7F
发表于 2023-9-11 16:50:22 IP属地湖北 |只看该作者
ljbin 发表于 2023-9-11 16:43
#include
#include
#include

我这里运行之后有问题,使用VS 2022编译了这个代码运行之后,输出的output.txt只有“d99a74507e98f17784f9fea757c800”。

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

8F
发表于 2023-9-11 17:28:26 IP属地湖北 |只看该作者
li344019636 发表于 2023-9-11 16:41
k看看是不是这样

初步看了一下应该是完整的,我现在依次秒传测试中。

Rank: 9

UID
197169
帖子
4956
PB币
17146
贡献
0
技术
696
活跃
2862

荣誉会员

9F
发表于 2023-9-11 17:49:09 IP属地北京 |只看该作者
OFFICE 2010 我可以给你提供 MSDN版,有需要你说话
2023-09-11_174747.png

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

10F
发表于 2023-9-11 18:09:35 IP属地湖北 |只看该作者
lrjycyz 发表于 2023-9-11 17:49
OFFICE 2010 我可以给你提供 MSDN版,有需要你说话

MSDN的没有专业版,只有专业增强版。

我资源帖开头写了:

(1)缺失零售版的Office Professional 2010(没有Plus),此版本为微软面向日本推出的3个特殊的零售版本(另外两个是Personal和Home and Small Business),曾经可以在微软官网下载,但现在微软已经删除了下载链接。

Rank: 7Rank: 7Rank: 7

UID
613186
帖子
2057
PB币
79
贡献
0
技术
13
活跃
893
11F
发表于 2023-9-11 21:17:39 IP属地广东 |只看该作者
这穷举法你确定要试试?每个有930个MD5呢。
C#源码
  1. namespace CompletionMD5
  2. {
  3.     public partial class Form1 : Form
  4.     {
  5.         public Form1()
  6.         {
  7.             InitializeComponent();
  8.         }

  9.         private void btnCompletion_Click(object sender, EventArgs e)
  10.         {
  11.             string inMD5 = txtMD5.Text;
  12.             int numInMD5 = txtMD5.Text.Length + 1;
  13.             string[] tmpText = new string[numInMD5];

  14.             for (int i = 0; i <= inMD5.Length; i++)
  15.             {
  16.                 tmpText[i] = inMD5.Substring(0, i) + "0" + inMD5.Substring(i, numInMD5 - i - 1);
  17.             }
  18.             txtOut.Text = string.Empty;
  19.             foreach (var item in tmpText)
  20.             {
  21.                 for (int i = 1; i < item.Length; i++)
  22.                 {
  23.                     txtOut.Text = txtOut.Text + item.Substring(0, i) + "0" + item.Substring(i, numInMD5 - i - 1) + Environment.NewLine;
  24.                 }
  25.             }
  26.         }
  27.     }
  28. }
复制代码
代码有点乱,C#随手写的,附件有源码和你发的演示生成的TXT文件。

CompletionMD5.rar (101.93 KB, 下载次数: 0)

Rank: 7Rank: 7Rank: 7

UID
613186
帖子
2057
PB币
79
贡献
0
技术
13
活跃
893
12F
发表于 2023-9-11 21:18:49 IP属地广东 |只看该作者
需要审核也是无语,bin文件夹中有生成的可执行文件。

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

13F
发表于 2023-9-11 22:02:55 IP属地湖北 |只看该作者
小_星_星 发表于 2023-9-11 21:18
需要审核也是无语,bin文件夹中有生成的可执行文件。

怎么会930个呢?

这个要去重的说。

Rank: 7Rank: 7Rank: 7

UID
613186
帖子
2057
PB币
79
贡献
0
技术
13
活跃
893
14F
发表于 2023-9-11 22:41:20 IP属地广东 |只看该作者
可以把结果复制到 excel 下1键去重。

Rank: 2Rank: 2

UID
2248470
帖子
185
PB币
388
贡献
0
技术
0
活跃
769
15F
发表于 2023-9-12 08:36:21 IP属地山东 |只看该作者
小_星_星 发表于 2023-9-11 21:17
这穷举法你确定要试试?每个有930个MD5呢。
C#源码代码有点乱,C#随手写的,附件有源码和你发的演示生成的 ...

930个是有重复的

Rank: 5Rank: 5Rank: 5

UID
1436378
帖子
662
PB币
331
贡献
0
技术
1
活跃
2701
16F
发表于 2023-9-12 10:19:50 IP属地重庆 |只看该作者
大佬你的LTSC 2021的初始镜像有更新过吗?我检查了一下组件、功能信息。你的和原版的LTSC 2021一模一样,但是很多组件又降回了19041.1,我用19041.1的pro生成的就完全不对。好厉害啊~可不可以指点一下啊

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

17F
发表于 2023-9-12 22:13:40 IP属地湖北 |只看该作者
z377409011 发表于 2023-9-12 10:19
大佬你的LTSC 2021的初始镜像有更新过吗?我检查了一下组件、功能信息。你的和原版的LTSC 2021一模 ...

LTSC 2021的初始镜像那个我是拿19041.1转换得到的啊,而且我正常集成没用那个,我是用LTSC 2021官方镜像卸载了除开LCU之外的其它更新,然后制作的时候通过清理(cleanup)的方式删除旧的LCU更新来实现的。

Rank: 5Rank: 5Rank: 5

UID
1436378
帖子
662
PB币
331
贡献
0
技术
1
活跃
2701
18F
发表于 2023-9-13 10:55:53 IP属地重庆 |只看该作者
fch1993 发表于 2023-9-12 22:13
LTSC 2021的初始镜像那个我是拿19041.1转换得到的啊,而且我正常集成没用那个,我是用LTSC 2021官方镜像卸 ...

两个方法我都试过了。UUP不集成更新生成19041.1 Pro,然后因为没有EnterpriseS的cab包,所以复制的LTSC 2021的Packages里面版本相关的cat和mum、另外还有Windows\servicing\Editions、Windows\System32\spp\tokens\skus,并且提取原版里面的了Packages的注册表导入,又对照着文件的构成,删除了其他版本的文件和注册表。/Set-ProductKey之后,转成了EnterpriseS。本以为成功了,但是集成不了更新了,SSU装了不报错,但实际没有装上,所以后续补丁全部因为依赖的原因,都装不上,折腾了好久也没解决。另外UUP转换的ini里面,19041也不支持自定义应用,还是预装了好多应用,弄了个脚本获取包名,把所有的appx包都卸载了,但唯独Microsoft.DesktopAppInstaller卸载不掉,如何不集成UWP应用或者全部卸载掉,这个问题也没解决。
又尝试把微软的19044.1288的原版镜像,因为微软做了/ResetBase,通过修改mum的permanence属性,把SSU卸载了,重装kb5004331把ndp也卸载掉了,但是LCU因为固化了,随便怎么搞.1288的东西都卸载不掉,我看您的wim组件基本都是19041.1的,但是Packages里面又有1288的文件,不知道有什么玄机

Rank: 7Rank: 7Rank: 7

UID
2755893
帖子
2121
PB币
3697
贡献
0
技术
777
活跃
3650

热心会员 远景技术达人

19F
发表于 2023-9-14 10:40:20 IP属地湖北 |只看该作者
z377409011 发表于 2023-9-13 10:55
两个方法我都试过了。UUP不集成更新生成19041.1 Pro,然后因为没有EnterpriseS的cab包,所以复制的LTSC 2 ...

我发现MDL已经有有人做了傻瓜的转换工具了,不需要手动操作了,没试过,但是应该可用。

https://forums.mydigitallife.net/threads/windows-editions-reconstruction-project.80939/page-296#post-1713065

Rank: 5Rank: 5Rank: 5

UID
1436378
帖子
662
PB币
331
贡献
0
技术
1
活跃
2701
20F
发表于 2023-9-14 12:01:49 IP属地美国 |只看该作者
fch1993 发表于 2023-9-14 10:40
我发现MDL已经有有人做了傻瓜的转换工具了,不需要手动操作了,没试过,但是应该可用。

https://forum ...

谢谢大佬,我两天也看见了。我还是就继续用你的初始镜像里面的,作为母版集成吧
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛