Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Spam, pravděpodobnost a PowerShell
únor 27
Spam, pravděpodobnost a PowerShell

Dneska mi dorazil zajímavý spam. Byl komplet v češtině, tak sem tomu dal šanci a omrknul o co jde. A ukázalo se to jako krásná bezpečnostní věc z oblasti vcelku civilního života.

Poznámka pro ty, co by mě chtěli následovat. Nikdy neklikejte na odkazy ve spamech přímo. To je docela jistá přihláška k odběru několikanásobně většího množství spamu, než normálně. Odkazy totiž skoro vždycky obsahují nějaké ID vaší osoby. Spamer má vaši emailovou adresu v databázi a k ní má přiřazeno nějaké číslo, aby to nebylo vidět v URL přímo. Skutečné URL uvidíte v mailu vždycky, když na ten odkaz najedete myší (a nebudete klikat :-)). Dokonce Outlook umí na pravé tlačítko ten odkaz jen okopírovat do schránky. Takže já si to vždycky vykopíruju a to číslo, nebo jiné části URL, které příliš vypadají jako nějaké ID, nejprve odstraním, nebo když to nejde, tak alespoň pozměním. No dobrá, tak máte pravdu, zřejmě tím někoho přihlašuju k odběru, ale co oči nevidí...

Reklama na kasíno

Takže dnešní spam byl reklama na kasína. Ale nebyla to jen ledajaká reklama. Byl tam luxusní návod, jak hrát v kasínu podle "tajného" systému a pořádně se napakovat. Celé to bylo vedeno tak, že jako nějaký člověk na internetu objevil super metodu, jak vydělávat 150 000,- měsíčně a chce se prostě podělit s ostatními. Motivací mělo být, že když to dělá víc lidí, tak to jako líp funguje.

Ale bylo to přísně tajný. Hlavně to člověk musel držet v tajnosti a mohl vydělávat majlant. A byly tam rovnou reklamy na dvě kasína :-) Jo, a nesměli jste to podle návodu moc přehánět, aby si toho jako ta kasína nevšimla :-)

Tajný systém na hru v kasínu, který zase až tak nefunguje

Tenhle systém znám od čtvrté třídy základní školy, kdy sme dostali k vánocům s brašulem ruletu. Není to nic neznámého. Prostě sázíte jen na barvu (nebo lichou/sudou). Je jedno, jestli jenom pořád na červenou, nebo to střídáte, nebo jak. Prostě vsadíte na červenou, nebo lichou, nebo sudou, nebo černou. Když to nevyjde, tak vsadíte dvojnásobek (vzhledem k tomu, že to je náhodné, můžete klidně vsadit i na cokoliv jiného).

Když to takhle děláte nějakou dobu a pořád prohráváte, tak jednou snad přijde výhra, ne? Ano, přijde. Když konečně vyhrajete, získáváte zpět všechno, co jste tam dosud vložili a navíc jste vydělali svůj úvodní vklad. Takže prostě jistota! Kecy.

Má to trošku problém - sázíte dvojnásobky. Takže když začnete s 2 EURa na černou a třeba vám padne 10x za sebou červená, budete muset vložit do dalšího pokusu 2048 EUR, abyste to přežili. A přitom vyhrajete jen 2 EURa.

Co je na tom špatně?

Tak vypadá to nevině, ale to je přesně ten problém. Ono totiž občas padne něco 10x a víckrát špatně. Mooožná, kdybyste měli strašně moc peněz, tak byste to třeba vydrželi do série 20x (1 000 000 EUR). Nebo i víckrát. Ale ona kasína mají také maximální limit na jednu sázku, takže máte smůlu a při delší sérii prostě prohráváte.

Je tam risk pro vás? Ano, strašný, protože když se chcete udržet, musíte vložit hrozné prachy na záchranu vstupních pár kaček (jako těch 2048 EUR na záchranu vstupních 2 EUR).

Je tam nějaký risk pro kasino? Není. Když to párkrát nevyjde, prodělají několik vašich vstupních vkladů, i když vy zrovna jedete v tisících EUR. To už je pro kasíno větší risk pustit tam člověka, který rovnou vrazí mega na jednu barvu a náhodou vyhraje, než tahle "zaručená finta".

Prostě to varování, že by vás kasíno vyhodilo, kdyby si všimli, že sázíte tímto způsobem, je blbost. Já mít kasíno, tak vám ještě poradím nějaké vylepšení téhle finty. A dám vám drink zadarmo.

Pravděpodobnost dlouhé série

Možná si říkáte, že dlouhá série je nepravděpodobná. Ale není. Dlouhá série je stejně pravděpodobná, jako jakákoliv jiná sekvence, nebo nesekvence, nebo cokoliv. Každý hod je úplně náhodný.

Demonstrace na PowerShell skriptu

Tak sem si na to vyrobil PowerShell skriptík, který prostě sází a vypočítává vám kolik zrovna vyděláváte a nebo proděláváte. Teda ve skutečnosti proděláváte :-)

$firstBet = 2	# penize, ktere sazite na prvni hod
$rowLimit = 10	# maximalni delka prohry, kterou chcete snaset, nebo se vejde do limitu kasina

$lastRnd = -1
$row = 1
[int64] $allRounds = 0
[int64] $earnings = 0
[int64] $minBalance = 0
$startTime = Get-Date

Get-Random -SetSeed ((Get-Date).Millisecond)

while ($true) { 

  $allRounds ++
  $rnd = Get-Random 2

  if (($rnd -eq $lastRnd) -and ($row -le $rowLimit)) { 

    $row ++

  } else {

    if ($row -le $rowLimit) { 

      $earnings += $firstBet

      Write-Host `
        ("Hod {0,10} :Vyhravate, celkem mate ted {1} a nejhure jste mel {2}" -f `
        $allRounds, $earnings, $minBalance)

    } else {

      $earnings -= ($firstBet * [Math]::Pow(2,$row)) - $firstBet

      if ($earnings -lt $minBalance) { $minBalance = $earnings }

      Write-Host `
        ("Hod {0,10} :Prohravate, celkem mate ted {1} a nejhure jste mel {2}" -f `
        $allRounds, $earnings, $minBalance)
    }
    
    $row = 1
  }

  $lastRnd = $rnd
}

Prostě to véééélmi rychle zajede do tak masivního mínusu, že to snad už musí každého trknout :-) Člověk by si mohl říct, že to prostě na začátku rozjede a ve vhodném okamžiku to ukončí? Ale když už to rozjedete, tak nikdy nevíte, jestli zrovna teď už neběží vaše nešťastná série :-)

Poznámka: a to můj skript nepočítá vůbec s nulou. Když padne občas nula (1/36tina), tak prohráváte taky. Takže s nulou by to bylo ještě o něco horší a cesta do pekla rychlejší.

Tak neblbněte a nesázejte. Je to cesta do pekel!

Pomalejší cesta do pekel

To už je bezpečnější prostě sázet tvrdohlavě pořád stejnou částku. Sice taky za čas přijdete na maděru (kvůli nule), ale bude to trvat déle, takže pokud chcete prostě sedět u počítače a čučet na točící se kolečko, prosím, tohle je méně agresivní metoda, jak přijít o peníze:

$firstBet = 1  # kolik budete tvrdohlave sazet?

Get-Random -SetSeed ((Get-Date).Millisecond)

$balance = 0
$round = 1

while ($true) { 

  $rnd = Get-Random 37

  if (($rnd -eq 0) -or (($rnd % 2) -eq 0)) { 

    $balance -= $firstBet

  } else {

    $balance += $firstBet

  }

  Write-Host ("Kolo {0,10} a utrata {1}" -f $round, $balance)
  $round ++
}

 

Comments

There are no comments for this post.

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments