Hmm, tak nakonec je těch zdrojáků trošku víc, ještě tam jsou soubory „graph_manage_[1-3].py“ o velikostech 249, 178 a 127 řádků a nějaké programy „RP_{ER,FR,PR}_base_01100.exe“, které vždy dostávají 12 argumentů a generují nějaké soubory. Jsou taky zabalené pomocí
py2exe, takže se na jejich zdrojáky ještě podívám.
Jinak kvalita té aplikace je taky docela zajímavá, například vůbec nepředpokládá, že by se příchozí pakety mohly fragmentovat, nebo obsahuje skvosty jako:
import socket
from socket import *
nebo
if CheckAppID(UserAppID) == 1:
pass
else:
...
Takže trochu pokračujeme.
Podle zdrojáků se aplikace na UDP port 3544 nepřipojuje, asi to dělají Windows (ten port se používá mj. pro Teredo).
Poté, co aplikace dostane „UserAppID_OK“, nabonzuje na server nějaké (v podstatě nevyužitelné) informace o daném počítači, v mém případě
PC_x86_5.1.2600_Windows-XP-5.1.2600-SP3_Windows_x86 Family 6 Model 3 Stepping 3, GenuineIntel, a uzavře spojení. Takže si vytvořím malý pythonní skript, který pověsím na TCP port 51000:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('89.187.143.103', 51000))
sock.listen(5)
while True:
(client, address) = sock.accept()
print client.recv(1024)
client.send('UserAppID_OK')
print client.recv(1024)
client.close()
A dostanu:
sten@kass ~ $ python roulette_server.py
52087343450628
PC_x86_5.1.2600_Windows-XP-5.1.2600-SP3_Windows_x86 Family 6 Model 3 Stepping 3, GenuineIntel
Tím se aplikace ověřila (opravdu neprolomitelné DRM

) a
vyžaduje jakési přihlášení. Přihlašovací údaje jsou vtipně uložené přímo v programu (nikam se neposílají) a
jsou jiné, než mi Karl poslal e-mailem:
if login_name == 'rouletteprocessing@gmail.com':
if login_password == 'trial':
com_layer_1.put('Login_OK')
return 1
else:
com_layer_1.put('wrong_PASSWORD')
dlg = wx.MessageDialog(self, 'Nespravne uzivatelske meno alebo heslo !', 'Neplatny Login !', wx.OK)
dlg.ShowModal()
dlg.Destroy()
return 0
else:
com_layer_1.put('wrong_LOGIN')
dlg = wx.MessageDialog(self, 'Nespravne uzivatelske meno alebo heslo !', 'Neplatny Login !', wx.OK)
dlg.ShowModal()
dlg.Destroy()
return 0
Ty dvě větve rozlišující vadné jméno a heslo jsou taky zajímavé. No nic, zadám přihlašovací údaje a
aplikace mě přivítá 
Teď zas musím dělat něco rozumného, vrátím se k tomuhle za chvíli.
Tady nikdo nic v zivote kupovat nebude 
Tahle verze je jen tak pro deti protoze vuziva pouhe snimani obrazu 
Jo jo, kdežto reálná verze odposlouchává SSL spojení mezi kasínem a tou aplikací, že jo?
