归档: 2021

音乐搜索器 - 多站合一音乐搜索,音乐在线试听 - By 麦葱 - 百脑音乐搜索器

下载地址 百脑音乐搜索器 麦葱特制多站音乐搜索套壳版!音乐搜索器已从线上改为PC桌面版,请下载后使用音乐搜索器,运行效果如下 下载地址为: 微云:链接:https://share.weiyun.com/x6ebKrAP 密码:d6rvbb 百度云盘 链接: https://pan.baidu.com/s/1b3ZgdZJmp3STjXWYplL1xA 提取码: w119 特别说明线下版只是套了一层壳,让php不需要任何配置就能跑起来,代码仍然是麦葱php音乐搜索器源码(开源地址:https://github.com/maicong/music ),本站并没有进行任何修改! 说明麦葱特制多站合一音乐搜索解决方案,可搜索试听网易云音乐、QQ音乐、酷狗音乐、酷我音乐、虾米音乐、百度音乐、一听音乐、咪咕音乐、荔枝FM、蜻蜓FM、喜马拉雅FM、全民K歌、 5sing原创、5sing翻唱的音乐。数据调用的是各网站的 API 接口,有的接口并不是开放的,随时可能失效,本项目相关代码仅供参考。 解决方案

win7/8取得当前系统完整激活密钥的代码

win7系统激活后,当前密钥没有明文保存,使用 1slmgr -dlv 只能查看部份密钥,如果查看完整的密钥呢?以下提供了四种语言取得完整的win7/8密钥,最简单的为第一种!win10/11的密钥在注册表的计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform右侧的BackupProductKeyDefault值,就是win10完整的密钥!所以相比来说,win10 win11的密钥取得要简单一些! vbs代码最简单,新建文本文件拷贝以下代码并保存为vbs,直接运行就可以获取win7当前使用的完整密钥!1234567891011121314151617181920212223242526Set WshShell = CreateObject("WScript.Shell")MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"))Function ConvertToKey(Key) Const KeyOffset = 52 i = 28 Chars = "BCDFGHJKMPQRTVWXY2346789" Do Cur = 0 x = 14 Do Cur = Cur * 256 Cur = Key(x + KeyOffset) + Cur Key(x + KeyOffset) = (Cur \ 24) And 255 Cur = Cur Mod 24 x = x -1 Loop While x >= 0 i = i -1 KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput If (((29 - i) Mod 6) = 0) And (i <> -1) Then i = i -1 KeyOutput = "-" & KeyOutput End If Loop While i >= 0 ConvertToKey = KeyOutputEnd Function win7 win8 win10 win11通用取密钥的vbs代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364Option ExplicitDim objshell,path,DigitalID, ResultSet objshell = CreateObject("WScript.Shell")'Set registry key pathPath = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"'Registry key valueDigitalID = objshell.RegRead(Path & "DigitalProductId")Dim ProductName,ProductID,ProductKey,ProductData'Get ProductName, ProductID, ProductKeyProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")ProductKey = "Installed Key: " & ConvertToKey(DigitalID)ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey'Show messbox if save to a fileIf vbYes = MsgBox(ProductData & vblf & vblf & "Save to a file?", vbYesNo + vbQuestion, "BackUp Windows Key Information") then Save ProductDataEnd If'Convert binary to charsFunction ConvertToKey(Key) Const KeyOffset = 52 Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert 'Check if OS is Windows 8 isWin8 = (Key(66)\6) And 1 Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4) i = 24 Maps = "BCDFGHJKMPQRTVWXY2346789" Do Current= 0 j = 14 Do Current = Current* 256 Current = Key(j + KeyOffset) + Current Key(j + KeyOffset) = (Current\24) Current=Current Mod 24 j = j -1 Loop While j >= 0 i = i -1 KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput Last = Current Loop While i >= 0 If (isWin8 = 1) Then keypart1 = Mid(KeyOutput, 2, Last) insert = "N" KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0) If Last = 0 Then KeyOutput = insert & KeyOutput End If ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)End Function'Save data to a fileFunction Save(Data) Dim fso, fName, txt,objshell,UserName Set objshell = CreateObject("wscript.shell") 'Get current user name UserName = objshell.ExpandEnvironmentStrings("%UserName%") 'Create a text file on desktop fName = "C:Users" & UserName & "DesktopWindowsKeyInfo.txt" Set fso = CreateObject("Scripting.FileSystemObject") Set txt = fso.CreateTextFile(fName) txt.Writeline Data txt.CloseEnd Function c++代码先从注册表项中(HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId)读取ProductId的二进制值,再使用下面的函数就可以解密win7/8系统当前使用完整密钥,而不是部份密钥 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364char* DecodeMicrosoftKey( BYTE* digitalProductId ){ /* NULL is a valid byte value, so check for it. */ if ( digitalProductId ) { /* Offset first value to 34H. */ const int keyStartIndex = 52; /* Offset last value to 43H. */ const int keyEndIndex = keyStartIndex + 15; /* Valid Product Key Characters. */ char digits[] = { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9', }; /* Length of decoded product key. */ const int decodeLength = 29; /* Length of decoded key in byte-form (each byte = 2 chars). */ const int decodeStringLength = 15; /* Array to contain decoded key. */ char* pDecodedChars = new char[ decodeLength + 1 ]; memset( pDecodedChars, 0, decodeLength + 1 ); /* Extract byte 52 to 67 inclusive. */ byte hexPid[ keyEndIndex - keyStartIndex + 1 ]; for ( int i = keyStartIndex; i <= keyEndIndex; i++ ) { hexPid[ i - keyStartIndex ] = digitalProductId[ i ]; } for ( int i = decodeLength - 1; i >= 0; i-- ) { /* Every 6th character is a seperator. */ if ( ( i + 1 ) % 6 == 0 ) { *( pDecodedChars + i ) = '-'; } else { /* Do the actual decoding. */ int digitMapIndex = 0; for ( int j = decodeStringLength - 1; j >= 0; j-- ) { int byteValue = ( digitMapIndex << 8 ) | hexPid[ j ]; hexPid[ j ] = ( byte )( byteValue / 24 ); digitMapIndex = byteValue % 24; *( pDecodedChars + i ) = digits[ digitMapIndex ]; } } } /* * Return the decoded product key. */ return pDecodedChars; } /* digitalProductID was passed as a NULL value, return NULL. */ else { return NULL; }} c#代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354RegistryKey hklm = Registry.LocalMachine;hklm = hklm.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion");byte[] digitalProductId = hklm.GetValue("DigitalProductId") as byte[];textBox1.Text = DecodeProductKey(digitalProductId);public static string DecodeProductKey(byte[] digitalProductId){ // Offset of first byte of encoded product key in // 'DigitalProductIdxxx" REG_BINARY value. Offset = 34H. const int keyStartIndex = 52; // Offset of last byte of encoded product key in // 'DigitalProductIdxxx" REG_BINARY value. Offset = 43H. const int keyEndIndex = keyStartIndex + 15; // Possible alpha-numeric characters in product key. char[] digits = new char[] { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9', }; // Length of decoded product key const int decodeLength = 29; // Length of decoded product key in byte-form. // Each byte represents 2 chars. const int decodeStringLength = 15; // Array of containing the decoded product key. char[] decodedChars = new char[decodeLength]; // Extract byte 52 to 67 inclusive. ArrayList hexPid = new ArrayList(); for (int i = keyStartIndex; i <= keyEndIndex; i++) { hexPid.Add(digitalProductId[i]); } for (int i = decodeLength - 1; i >= 0; i--) { // Every sixth char is a separator. if ((i + 1) % 6 == 0) { decodedChars[i] = '-'; } else { // Do the actual decoding. int digitMapIndex = 0; for (int j = decodeStringLength - 1; j >= 0; j--) { int byteValue = (digitMapIndex << 8) | (byte)hexPid[j]; hexPid[j] = (byte)(byteValue / 24); digitMapIndex = byteValue % 24; decodedChars[i] = digits[digitMapIndex]; } } } return new string(decodedChars);} vb代码仅解密函数,值仍然在注册表中获得,代入函数即可解密完整的win7密钥 12345678910111213141516171819202122232425262728293031323334Function ConvertToKey(Key)     Const KeyOffset = 52     Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert     'Check if OS is Windows 8     isWin8 = (Key(66) \ 6) And 1     Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)     i = 24     Maps = "BCDFGHJKMPQRTVWXY2346789"     Do            Current= 0         j = 14         Do            Current = Current* 256            Current = Key(j + KeyOffset) + Current            Key(j + KeyOffset) = (Current \ 24)            Current=Current Mod 24             j = j -1         Loop While j >= 0         i = i -1         KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput         Last = Current     Loop While i >= 0           If (isWin8 = 1) Then         keypart1 = Mid(KeyOutput, 2, Last)         insert = "N"         KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)         If Last = 0 Then KeyOutput = insert & KeyOutput     End If               ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)      End Function

Delphi-条件判断那些事

之前照着天书夜读,用Delphi来弄了下循环体,现在就来弄一下条件判断吧.首先肯定是我们经常看见的IF语句咯. 1234567891011121314Var I: Integer; Begin I:= 99; If (I> 0)And (I< 0) Then Writeln('I>0') Else If (I> 10)And (I< 100) Then Writeln('I>10 and I<100') Else Writeln('I>100'); End. 反汇编出来会是什么样子的呢? 1234567891011121314151617181920212223242526272829303132Project5.dpr.12: I:= 99;004AC44C B863000000 mov eax,$00000063Project5.dpr.13: If (I> 0)And (I< 0) Then004AC451 85C0 test eax,eax004AC453 7E1F jle $004ac474004AC455 85C0 test eax,eax004AC457 7D1B jnl $004ac474Project5.dpr.14: Writeln('I>0')004AC459 A1DC314B00 mov eax,[$004b31dc]004AC45E BAC4C44A00 mov edx,$004ac4c4004AC463 E874BAF5FF call @Write0UString004AC468 E8BF89F5FF call @WriteLn004AC46D E83E7FF5FF call @_IOTest004AC472 EB3E jmp $004ac4b2Project5.dpr.16: If (I> 10)And (I< 100) Then004AC474 83F80A cmp eax,$0a004AC477 7E20 jle $004ac499004AC479 83F864 cmp eax,$64004AC47C 7D1B jnl $004ac499Project5.dpr.17: Writeln('I>10 and I<100')004AC47E A1DC314B00 mov eax,[$004b31dc]004AC483 BAD8C44A00 mov edx,$004ac4d8004AC488 E84FBAF5FF call @Write0UString004AC48D E89A89F5FF call @WriteLn004AC492 E8197FF5FF call @_IOTest004AC497 EB19 jmp $004ac4b2Project5.dpr.19: Writeln('I>100');004AC499 A1DC314B00 mov eax,[$004b31dc]004AC49E BA04C54A00 mov edx,$004ac504004AC4A3 E834BAF5FF call @Write0UString004AC4A8 E87F89F5FF call @WriteLn004AC4AD E8FE7EF5FF call @_IOTest 我们这里就容易得出来Delphi里面IF语句的结构了.判断1不满足就跳————————-|满足条件代码 |[无条件Jmp到所有判断外] |[判断2] <——|………………………………………..就是这样的在IF的反汇编上面 和 书中的VC反汇编出来的代码差不多.接下来就是看switch语句(Delphi里面的Case): 12345678910111213141516171819202122232425Var I: Integer; Begin I:= 9; Case I Of 0: Writeln('0'); 1: Writeln('1'); 2: Writeln('2'); 3: Writeln('3'); 4: Writeln('4'); 5: Writeln('5'); 6: Writeln('6'); 7: Writeln('7'); Else Writeln('0'); End; End. 反汇编一下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778Project5.dpr.12: I:= 9;004AC44C B809000000 mov eax,$00000009Project5.dpr.13: Case I Of004AC451 83F807 cmp eax,$07004AC454 0F8703010000 jnbe $004ac55d004AC45A FF248561C44A00 jmp dword ptr [eax*4+$4ac461]004AC461 81C44A009EC4 add esp,$c49e004a004AC467 4A dec edx004AC468 00BBC44A00D8 add [ebx-$27ffb53c],bh004AC46E C44A00 les ecx,[edx+$00]004AC471 F5 cmc 004AC472 C44A00 les ecx,[edx+$00]004AC475 0FC54A0029 pextrw ecx,qword ptr [edx+$00],$29004AC47A C54A00 lds ecx,[edx+$00]004AC47D 43 inc ebx004AC47E C54A00 lds ecx,[edx+$00]Project5.dpr.15: Writeln('0');004AC481 A1DC314B00 mov eax,[$004b31dc]004AC486 66BA3000 mov dx,$0030004AC48A E8DDADF5FF call @Write0WChar004AC48F E89889F5FF call @WriteLn004AC494 E8177FF5FF call @_IOTest004AC499 E9D7000000 jmp $004ac575Project5.dpr.17: Writeln('1');004AC49E A1DC314B00 mov eax,[$004b31dc]004AC4A3 66BA3100 mov dx,$0031004AC4A7 E8C0ADF5FF call @Write0WChar004AC4AC E87B89F5FF call @WriteLn004AC4B1 E8FA7EF5FF call @_IOTest004AC4B6 E9BA000000 jmp $004ac575Project5.dpr.19: Writeln('2');004AC4BB A1DC314B00 mov eax,[$004b31dc]004AC4C0 66BA3200 mov dx,$0032004AC4C4 E8A3ADF5FF call @Write0WChar004AC4C9 E85E89F5FF call @WriteLn004AC4CE E8DD7EF5FF call @_IOTest004AC4D3 E99D000000 jmp $004ac575Project5.dpr.21: Writeln('3');004AC4D8 A1DC314B00 mov eax,[$004b31dc]004AC4DD 66BA3300 mov dx,$0033004AC4E1 E886ADF5FF call @Write0WChar004AC4E6 E84189F5FF call @WriteLn004AC4EB E8C07EF5FF call @_IOTest004AC4F0 E980000000 jmp $004ac575Project5.dpr.23: Writeln('4');004AC4F5 A1DC314B00 mov eax,[$004b31dc]004AC4FA 66BA3400 mov dx,$0034004AC4FE E869ADF5FF call @Write0WChar004AC503 E82489F5FF call @WriteLn004AC508 E8A37EF5FF call @_IOTest004AC50D EB66 jmp $004ac575Project5.dpr.25: Writeln('5');004AC50F A1DC314B00 mov eax,[$004b31dc]004AC514 66BA3500 mov dx,$0035004AC518 E84FADF5FF call @Write0WChar004AC51D E80A89F5FF call @WriteLn004AC522 E8897EF5FF call @_IOTest004AC527 EB4C jmp $004ac575Project5.dpr.27: Writeln('6');004AC529 A1DC314B00 mov eax,[$004b31dc]004AC52E 66BA3600 mov dx,$0036004AC532 E835ADF5FF call @Write0WChar004AC537 E8F088F5FF call @WriteLn004AC53C E86F7EF5FF call @_IOTest004AC541 EB32 jmp $004ac575Project5.dpr.29: Writeln('7');004AC543 A1DC314B00 mov eax,[$004b31dc]004AC548 66BA3700 mov dx,$0037004AC54C E81BADF5FF call @Write0WChar004AC551 E8D688F5FF call @WriteLn004AC556 E8557EF5FF call @_IOTest004AC55B EB18 jmp $004ac575Project5.dpr.31: Writeln('0');004AC55D A1DC314B00 mov eax,[$004b31dc]004AC562 66BA3000 mov dx,$0030004AC566 E801ADF5FF call @Write0WChar004AC56B E8BC88F5FF call @WriteLn004AC570 E83B7EF5FF call @_IOTest 在这里我们看到了一个Delphi的优化,它首先把I和7比,如果大于就直接跳到else语句那里.如果小于等于,我们看到是无条件Jmp到一个I为等间距偏移的地方,也就是每个writeln语句是等大小的.要是我们改成不是01234567呢?大家自己试一下,不是等距case代码还是没有变.而VC里面会怎么样?cmp->je->cmp->je->cmp->je就是这样不停的对比,如果相等就跳.这样符合我们思维一些.转自https://www.cnblogs.com/huangjacky/archive/2010/02/04/1663847.html For循环

给别人的软件启动前加上自己的提示框

开始之前我们先做下准备工作首先载入OD,我们把前四行先复制一下粘贴到记事本上,因为一会儿我们修改的时候会把前三行给自动填充,所以一会儿我们要给它补上。然后Ctrl+N打开函数列表,找到 MessageBoxA 函数 右键复制一下粘贴到记事本上接下来,我们找到一个空白的地方写上我们要提示字符。选中一段空白的地方然后按“空格”在“ASCII”里编辑我们的字符编辑好以后,我们选中编辑好的字符串右键保存一下(注:我们编辑提示信息的地址得记下,一会儿要用的,用的地址是“00406F80”和“00406FC0”)保存好后,我们直接用OD载入我们刚才保存的exe文件。载入后,我们直接 Ctrl+B 搜索二进制字符串“00 00 00 00 00”……(也就是找到空白处,开始编写代码)选中一行按“空格”开始编写编写完成后,我们回到程序刚载入时的起始地方,把第一句改成“jmp 00405D9E”,也就是说让程序运行前先执行下我们的提示框,然后再正常运行。完成后保存下吧。这里我就不上图了,记得是 “保存全部修改”哦。好,我们现在来执行下我们修改后的程序吧 转自 https://www.xuepojie.com/thread-1381-1-2.html练手软件下载地址 https://www.xuepojie.com/forum.php?mod=attachment&aid=MjY2MHwyZmJiNDcxYnwxNjM3NDc3MDQyfDEzNDc4N3wxMzgx

利用ntfs属性隐藏windows后门文件的方法

浅析ADS(供选数据流)隐藏Windows后门的方法 ADS (供选数据流/ alternate data stream)NTFS使用Master File Table (MFT) 来管理文件。windows系统中的每个文件都对应一个MFT记录。而每一个MFT记录由若干个属性(attribute)组成,用来描述该文件的具体信息。比如 $FILE_NAME 属性描述了该文件的文件名和创建修改访问时间,而$DATA属性包含了该文件的具体内容。很多人想当然的认为一个文件只能有一个$DATA属性,这是错误的。在NTFS中,一个文件可以有多个$DATA属性。比如我现在想给test.txt加入一个名为ThisIsAnADS的$DATA属性: 1c:\test>echo Hello, freebuf! > test.txt:ThisIsAnADS 你可能发现了这两个$DATA属性还是略有不同的,第一个没有名称,而第二个有名称(ThisIsAnADS)!通常人们称第一个为主数据流(primary data stream )。主数据流在文件创建的同时就被创建了,并且默认没有名称,所以也叫做未名数据流 (unnamed data stream)。第二个是我们后来创建的,并且赋予了名称(ThisIsAnADS)。这个就是供选数据流 (alternate data stream,ADS)。绝大多数用户只会和主数据流打交道,从某种意义上来说,ADS对用户是隐藏的。用常规的dir命令和windows文件管理器都没法发现ADS。而当我们查看文件内容的时候也仅仅显示主数据流的内容。 123456789101112c:\test>dir test.txtVolume in drive C is OSVolume Serial Number is F467-BAF0 Directory of c:\test 2015-07-26 10:29 13 test.txt1 File(s) 13 bytes0 Dir(s) 42 991 456 256 bytes free c:\test>type test.txtHello, world! 看!dir和type命令只显示了主数据流的长度和内容。但是我们可以使用dir /r 命令来列出ADS 12345678910c:\test>dir /r test.txtVolume in drive C is OSVolume Serial Number is F467-BAF0 Directory of c:\test 2015-07-26 10:29 13 test.txt18 test.txt:ThisIsAnADS:$DATA1 File(s) 13 bytes0 Dir(s) 42 991 382 528 bytes free 我们也可以用powershell命令Get-Content来查看ADS的内容

简单三步抢先体验安装WIN11安卓子系统

#如何抢先体验安装WIN11的安卓子系统? 目前安卓子系统仅仅推送给美国地区的 Beta 渠道用户,使用本文方法可以跳过这个限制!所需要子系统下载地址 https://pan.huang1111.cn/s/E7yOSb 安卓adb下载地址 https://dl.google.com/android/repository/platform-tools-latest-windows.zip win11已经有安卓子系统了啦,只需三步,就可以让你的Win11,抢先体验安卓子系统,今天我们来聊聊,如何快速安装Win11的安卓子系统。 第一步,打开win11的控制面板,钩选上虚拟机平台,确定后重启第二步,下载Windows Subsystem For Android你可以直接通过这个地址(https://www.microsoft.com/store/productId/9P3395VX91NR)在微软商店下载,但有诸多限制,可以直接在国内下载Win11安卓子系统在国内下载(https://pan.huang1111.cn/s/E7yOSb),adb下载地址 https://dl.google.com/android/repository/platform-tools-latest-windows.zip下载好后重命名为wsa,然后以管理员打开powershell运行 1Add-AppxPackage wsa.Msixbundle 注意命令的大小写,不能写错!正确后开始安装安卓子系统 第三步,安装安卓应用,通过开始菜单,运行安卓子系统,打开安卓子系统的开发人员模式,同时打开一下安卓子系统的文件,如果你的电脑没有开启虚拟化,就会有错误提示,无法打开文件,正确开启虚拟化后刷新IP地址,开发人员模式会提示adb的连接地址,下载好安卓的adb程序,解压后在adb目录打开命令提示符,运行adb connect 上面显示的地址 1adb connect 127.0.0.1:58526 如果安卓子系统没有正确运行,会弹出连接失败,你可以重新运行一下文件或点击子系统资源激活安卓子系统,再次使用adb进行连接,正确连接后会提示adb连接成功,然后就 可以使用adb安装应用,输入adb install app包的地址,

一个设置绕过TPM成功安装WIN11正式版系统

一个设置让你绕过TPM,成功安装WIN11的方法!安装WIN11需要检测电脑是否有TPM2.0芯片?没有TPM能不能安装WIN11呢?今天我们来聊聊没有TPM2.0,如何成功安装WIN11?首先,下载好WIN11正式版的ISO映像文件,点击setup开始安装,跳过输入产品密钥,选择专业版,弹出此电脑无法运行WIN11,按键盘上的Shift+F10打开命令提示符,运行注册表regedit,依次打开HKEY_LOCAL_MACHINE,SYSTEM Setup,对着Setup项右键,新建 LabConfig项,在此项下新建32位BypassTPMCheck的DWORD值,并设置为1,再新建32位的DWORD值BypassSecureBootCheck,并设置为1,关闭注册表,关闭命令行,点击左上角返回上一步,再点击下一步,成功跳过TPM检测,选择安装类型,新装需进行分区及格式化,升级就直接选择安装的系统盘符,下一步后就开始安装,重启两次后来到海内存知己界面,选择国家,选择输入法和布局,漫长的更新检查后,输入电脑名称,多次转圈后再一次自动重启,输入帐户和密码,设置找回帐户的三个安全问题及答案,来到隐私设置,显示准备界面,完成后进入Win11桌面。Win11的激活仍然可以使用,WIN10的激活方法!数字激活仍然可以永久激活了WIN11,至于跳过TPM,你也可以在安装前,直接打开ISO映像文件,在source目录下,改名或删除或修改appraiserres.dll文件,如果你的主板支持TPM2.0那就在BIOS中打开设置,都可以成功安装Win11系统! 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp 欢迎关注百脑问抖音:表情包零动画 抖音号:bqbao 欢迎关注百脑问小红书:杰叔说电脑

一句代码,揭开CPU执行原理

C语言写入一行代码 sum = a + b 计算机是怎样执行你写的这行代码的?C语言的一行代码int sum = a + b;经过编译器编译后你从IDA反编译后看到就是这个样子8B 45 EC mov eax, [ebp+a]03 45 E0 add eax, [ebp+b]89 45 F8 mov [ebp+sum], eax汇编代码对应的机器指令分别为8B 45 EC03 45 E089 45 F8十六进制只是为了书写方便计算机真正能看懂的是二进制的比特流10001011 01000101 11101100 00000011 01000101 11100000 10001001 01000101 11111000 计算机怎么执行这些比特流的呢?我们先了解一下CPU的指令格式x86架构CPU指令格式象这样每一条指令主要有六个部份,操作码是必须的,标识这条指令是什么功能CPU是执行指令的核心部件,在CPU中有一个指令寄存器IP,(32位叫eip 64位叫rip),开始执行上面的二进制比特流时,CPU指令寄存器指向第一条指令,开始读取第一个字节:10001011,也就是十六进制的8B,然后开始指令译码这是x86架构的cpu指令操作码表:看到8b是 mov指令往eax塞数据,再往后看十六进制 45的译码就是根据ebp寄存器的值+8位偏移来读取数据,再往后读取一个字节,就是偏移值 EC。第一条指令译出来就是:将ebp+EC位置处的4个字节的数据取出来,放到eax寄存器中。这就是这一条指令要干的事情,同时CPU得出,这一条指令长度是3个字节,下一条指令的起始地址是在3个字节之后,指令寄存器EIP就向后移动,指向下一条指令的地址:$ + 3执行完一条以后,又来到指令寄存器EIP指向的地方,随后再次指令译码、执行,不断重复这个过程,依次执行每一条指令。这其实就是CPU工作最基本的原理。 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp 欢迎关注百脑问抖音:表情包零动画 抖音号:bqbao 欢迎关注百脑问小红书:电脑百科知识

解决C盘空间不足的万能方法

简介C盘空间只有50G的大小,为什么能保存下900多G的游戏?今天我们来说说解决C盘空间不足的万能方法!C盘空间不足的解决方法通常有以下几种,第一,安装软件时选择其他盘,第二,清理系统的垃圾或冗余文件第三,扩展C盘分区,增加C盘容量。有没有一种方法让C盘空间永远存不满呢?回到我们开头的话题,50G的C盘,可以保存900多G的游戏。解释这个问题就要说到NTFS文件格式的符号链接,我们只要把存放在C盘的数据文件或文件夹移到其他盘,再创建文件或文件夹的符号链接到C盘,就能让C盘永远占不满!怎么创建符号链接呢,以C盘的photoshop目录为例,把photoshop剪切放在D盘,然后打开命令提示符,输入mklink /d “C:\Program Files\Adobe\Photoshop” “D:\Program Files\Adobe\Photoshop” 回车,其他所有设置不用更改,就象photoshop目录仍然在C盘一样!这就是网吧的电脑玩steam的游戏,C盘可以存放无限游戏的原因! mklink命令详解 mklink 命令区别:/d 给目录创建符号链接,简称符号链接、软链接;/h 创建硬链接,简称硬链接;/j 给目录创建联接点,简称软链接。当没有上面3个命令符时,创建是文件软链接!文件类型:.symlink注意:路径,建议使用绝对路径,必须使用英文双引号将路径括起来;空格,命令之间必须有空格 符号链接、目录链接、硬链接与快捷方式 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp 欢迎关注百脑问抖音:表情包零动画 抖音号:bqbao 欢迎关注百脑问小红书:电脑百科知识

如何从微软官方高速下载Win11正式版ISO?

如何才能从微软官方快速下载到win11正式版?从百度搜索win11官方正式版,搜索结果均是2021年10月以前的记录,中国Win11正式版推送时间10月6日 正式版版本号22000.194,显然,从百度搜索出来的结果均不能下载,下载后都是原来的win11测试版! win11微软官方正式版下载方法 打开网址 https://www.microsoft.com/zh-cn/software-download/windows11 界面如下:其中有三个选项 Windows 11 安装助手,如果你是在您当前所使用设备上安装 Windows 11,就选择此项下载,下载后是一个Windows11InstallationAssistant.exe可执行文件,运行后按照提示安装! 创建 Windows 11 安装媒体,如果要在新电脑或旧电脑上重新安装 Windows 11 或执行全新安装,请使用此选项下载媒体创建工具,以制作可引导的 USB 或 DVD。下载后是一个MediaCreationToolW11.exe的可执行文件,可以创建安装U盘或安装光盘! 下载 Windows 11 磁盘映像 (ISO),此项先选择win11或win11家庭版,点击下载后,再选择语言,确认就可以直接下载win11的ISO文件!此下载链接24小时有效,需要在24小时内下载完成! 加快下载win11官方正式版速度的方法!如果你是选择的第二项制作安装U盘,可能速度稍快!但从微软官方的下载链接下载ISO,速度很慢,我们可以离线下载Win11官方正式版ISO。百度网盘和微云的离线下载均不能下载Win11官方正式版ISO,均会显示失败!我们可以从offcloud离线下载!首先打开 https://offcloud.com/, 然后输入一个可用的电子邮件,点击加入 如果你想后续使用offcloud,可以在offcloud发来的电子邮件中设置密码,以后就可以使用邮件和密码登录offcloud!进入offcloud界面后,如下面图示,首先在1处选择代理为香港,然后在2处把微软官方Win11正式版的下载地址粘贴,再按3处的下载按钮,在offcloud弹出来的链接进行下载,速度可能达到几M或十几M的速度! 这样就可以高速的下载Win11官方正式版了!还能避免你下载到满是插件、广告、锁主页等的微软十月推出的Win11正式版系统! 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp