Last active
February 6, 2023 10:22
-
-
Save 4c74356b41/b8e3a37d4c6802d9aba1523887c2611c to your computer and use it in GitHub Desktop.
bustabit verifier script in powershell
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$sha256 = [System.Security.Cryptography.HashAlgorithm]::Create('SHA256') | |
$hmacsha256 = [System.Security.Cryptography.HashAlgorithm]::Create('HMACSHA256') | |
$hmacsha256.key = [Text.Encoding]::UTF8.GetBytes('0000000000000000004d6ec16dafe9d8370958664c1dc422f452892264c59526') | |
$newHash = '2903d97704db3c318063a7bb86c93dbf814e305fb3d059130e391df2cf0d5794' | |
$games = foreach ($x in 0..3739515) { | |
$signature = [System.BitConverter]::ToString( | |
$hmacsha256.ComputeHash( | |
[byte[]] -split ($newHash -replace '..', '0x$& ') | |
) | |
).Substring(0, 19).Replace('-','').ToLower() | |
$newHash = [System.BitConverter]::ToString( | |
$sha256.ComputeHash( | |
[System.Text.Encoding]::UTF8.GetBytes( | |
$newHash | |
) | |
) | |
).Replace('-','').ToLower() | |
$r = [convert]::ToInt64($signature, 16) | |
$x = 99 / (1 - ($r / [math]::Pow(2, 52))) | |
@{ hash = $newHash; bust = [math]::Max(1.00, [math]::Floor($x) / 100) } | |
} |
переделал. Вызовы функции, походу, довольно дорогие, просто вызывать методы быстрее. Вынес второй хешер, чтобы не пересоздавать его 3.7кк раз, приделал сабстринг перед реплейсом и ловером, а не после него,, по идее это должно еще немного времени выиграть. Переделал for на foreach, для интежеров он быстрее сильно. еще кое-где убрал присваивание в промежуточные переменные (читаемость, к сожалению, упала).
в целом где-то на порядок быстрее работает теперь. еще минорный баг поправил :)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
for ($i = 10; $i -gt 0; $i--)
- это можно расспараллелить если нет зависимости между итерациями // вижу что взаимозависимые :(тут
[psobject]@{ hash = $message; bust = $bust
наверное должен быть [pscustomobject] ато после приведения типов все равно останется хеш таблицареплейсы
Replace('-', '').ToLower()
яб вынес в функцию, там они и так уже естьк слову если реплейсом жахнуть все хеши склеенные вместе должно получиться быстрее чем перебирая их поодному