[OV-Chip Mobiel] Brakke apps van semi-staatsbedrijven en hoe ze te fixen

Door Flippylosaurus op maandag 22 mei 2017 16:02 - Reacties (15)
Categorie: -, Views: 2.871

Het is zover, TLS heeft een app uitgebracht die het je toestaat om in- en uit te checken met je mobiel. Leuk en aardig, maar de implementatie is volledig brak en er zijn acties (soms) vereist die de gemiddelde user niet begrijpt. Deze zal ik hier uitleggen.

Ik heb zelf de app kunnen pakken toen 'ie per ongeluk 2 maanden terug op Google Play verscheen voor een dag. Blijkbaar was ik toen in een beta gezet want ik ontving updates - ook toen mensen de app niet meer konden downloaden. Toendertijd was het alleen een UI-demo. Er is eigenlijk vrij weinig veranderd.

Maarja, genoeg gezeur, laten we beginnen met de uitleg.

De Provider-wallet (NFC manager/Vodafone wallet)

Het eerste wat je moet downloaden is de Wallet van je provider. Deze stelt een laag beschikbaar aan andere apps om te communiceren met de simkaart. Bij mij drijfden de eerste problemen al op.
App crasht bij het starten
Dit kunnen twee dingen zijn.
OpenMobileAPI
De wallet is afhankelijk van de SIM Alliance OpenMobileAPI om te praten met het Secure Element. Als je deze niet hebt kan je deze installeren. Controleer eerst of de fout echt bij de OpenMobileAPI ligt!
Je kan de log van de crash op vragen door op Feedback Versturen (of iets dergelijks) te klikken, dan krijg je de optie om weer te geven wat er mis is gegaan. Als je een ClassNotFoundException krijgt die meldt dat org.simalliance.openmobileapi.SEService niet kan worden gevonden, dan moet je een ZIP'je flashen (je hebt dus een custom recovery nodig) vanaf deze link: https://forum.xda-develop...le-api-installer-t3547842 (o ja, dit laat ook apps als de Rabo Wallet werken). Installeer deze. Dan kan je in nog een probleem komen, namelijk...
Permissies
Bij wat getest van mij blijkt het dat standaard wat permissies ingesteld moesten worden.
Dit kan je doen door lang op de app te drukken in je launcher en dan naar App Info te gaan. Geef daar de app alle permissies.


Top. Nu hebben we al 1 stap gedaan. Laten we nu verder gaan met de...

OV-Chip Wallet

App crasht bij het starten
Check even je permissies en of je de OpenMobileAPI hebt. Zie hierboven.
De app zegt dat mijn Android-versie oud is
Dit is een verkapte manier om te zeggen dat je mobiel geroot is. Dit wordt niet met Safety Net gecontroleerd. In plaats daarvan wordt er gekeken naar het bestaan van enkele bestanden:
  • /system/app/Superuser.apk
  • /sbin/su
  • /system/su
  • /system/sd/xbin/su
  • /system/bin/su
  • /system/bin/failsafe/su
  • /system/bin/.ext
  • /system/xbin/su
  • /system/xbin/.ext
  • /data/local/su
  • /data/local/bin/su
  • /data/local/xbin/su
  • /data/data/com.noshufou.android.su
Je kan dit bypassen door een aanpassing te maken in de Smali-bytecode, maar dit zal ik je niet kunnen uitleggen omdat dit tegen de ToS van Tweakers ingaat. Het is een vrij makkelijke aanpassing.


Dat is voor nu alles wat ik kan zeggen, ik heb de app nog niet kunnen gebruiken omdat er "veel belangstelling" is. Als ik nog wat vind zal ik zeker een nieuwe post maken.

Succes!

Het probleem met spellen die hun players servers laten opzetten

Door Flippylosaurus op dinsdag 6 september 2016 20:59 - Reacties (13)
Categorie: -, Views: 1.225

Vooraf: deze post bevat grof taalgebruik.

Na aanleiding van nieuws: Gegevens van dienst voor Minecraft-gameserverlijsten zijn buitgemaakt vond ik het even leuk om het hier over te hebben.

Tegenwoordig zijn er best veel spellen die hun community servers laten opzetten. Sommigen hebben officiŽle servers (bijvoorbeeld Team Fortress 2), sommigen hebben dat niet (Minecraft bijvoorbeeld). Het probleem is dat in sommige gevallen dit he-le-maal misgaat. Ik zeg niet dat spelers geen servers mogen opzetten, integendeel zelfs! Sommige servers zien het grote geld en gaan dan helemaal 180 graden draaien, tegen de rug van de community en voor het grote geld.

Ik noem een voorbeeld. (namen van servers zijn gefingeerd en niet echt. de situatie is wel echt.)

Ik ga naar TF2ServerGaming.net. Die bieden een server aan met een leuke map rotation. Ik kom binnen, en met een HTML MOTD (bericht wat je aan het begin van het spel ziet) krijg ik een pagina zonder content met alleen advertenties. En dan niet gewoon netjes Google Ads, nee - ook best vulgaire ads. Die zorgden ervoor dat mijn CPU ineens naar 100% schoot. Oke, ik zet dan mijn HTML MOTD's uit. Een bericht verschijnt in de chat:

[WALLOFSHAME] Flippylosaurus has disabled his HTML MOTD's!

What the actual fuck. Ik krijg ook niet de mogelijkheid om normaal te spelen. Ik zit vast in spectator mode en moet mijn HTML MOTD's aanzetten om weer te kunnen spelen, alhoewel er dan wel [S] voor mijn naam staat.

2 minuten later krijg ik een vriendenverzoek. Ik zal hem wel accepteren, het zal waarschijnlijk iemand zijn waarmee ik op GMod speelde.

Hij stuurt me direct dit:

wtf dude, these servers need money to run so you just turn off ads. hope you die in hell, peice [sic] of shit.

Dit is direct gekopiŽerd. Na het verzenden heeft degene mij permanent geblokkeerd.

Ik was benieuwd hoe deze community eerder was. Ik zocht de site op in het internet archive. Rond 2013 stond er nog geen enkele vermelding van "donaties", advertenties, et cetera. In midden 2014 kwam er een melding. Ik kan deze helaas niet meer terugvinden, dit is wat ik me er van kan herinneren:

"Hey there! Due to declining player rates, we have added a donation system. Donations are fully voluntarily and do not give you unfair advantages. You will only receive a special tag in front of your name. We are also adding HTML MOTD adverts which you will only see once every 3 hours. We are trying to make them as non-obtrusive as possible and we have partnered up with Google Ads to present you adverts based on your interests."

Er stond een player counter naast hun site, ze hadden ongeveer 5 servers. 5 maanden ervoor hadden ze er 2. Toen ze er 2 hadden waren die bijna permanent vol (32 spelers), toen ze er 5 hadden waren er meestal 3/5 vol en hadden de andere 2 ongeveer 1-4 plekken vrij. Onzin dus. Die server zit in je gezicht te liegen. Het erge is? Al de spelers die ze kennen blijven daar, dus hun blijven ook dus ze moeten die reclames maar slikken.

Nog een ander iets erger voorbeeld. Dit is bijna overgekopieerd van mijn reactie.

Een bedrijf genaamd Tendonsie Services bied diensten aan voor Minecraft Servers. Hieronder valt ServerPact.

ServerPact heeft niet zo'n heel nette bedrijfsvoering. Ik draaide in het verleden een server met als doel er een klein zakcentje aan te verdienen. Ja, dat mocht niet van de EULA, maar wat maakte mij dat uit (dit is tegenwoordig een groot probleem aan die "communities", zijn alleen maar grote bedrijven die alles doen om een slaatje eruit te slaan).

Dat bedrijf beheert een zgn. voting list. Minecraft hosters kunnen een Votifier server openzetten die aan een plugin in de Minecraft server zit gekoppeld. Zodra de server een RSA-beveiligd pakketje van de serverlijst ontvangt kan de Minecraft server daar een beloning aan koppelen (natuurlijk te verdubbelen op sommige servers met micropayments).

Het bedrijf zelf is niet echt helemaal moreel bezig naar mijn mening. Zoals hier (https://tendonsieservices.nl/minecraft-server-lijst/) te zien is verkopen ze gewoon votes. Bij hun "Ultimate" package krijg je +2000 votes elke maand. Als je 40 spelers actief hebt die elke dag actief op jouw server stemmen haal je maar 1200 in de maand. In de praktijk is dit sowieso minder omdat soms spelers afwezig zijn, niet willen stemmen, etc.

Als je groot wil zijn had je in principe 3 jaar geleden (voordat deze sites startten) moeten beginnen met een server, een goed bedragje daaraan overhouden, zodra dat soort diensten begonnen een hoog-tier package moeten kopen, etc... of je moet natuurlijk nu veel geld hebben, wat best moeilijk is. Er staat geen prijs bij maar verwacht maar dat dat 40,- ofzo zal zijn. Als je al lasten van je server hebt is dit simpelweg niet te doen.

Vind het zelf toch niet zo'n etisch verantwoordelijke businesspraktijk, al helemaal omdat deze lijst gewoon de go-to plek is om nieuwe servers te vinden. Hoop dat Mojang dit soort toko's snel op de vingers tikt.

En zo kan ik nog wat voorbeelden noemen.

Ik kan bij sommige games geeneen non-commerciŽle server vinden. Donaties vind ik niet erg (dat maakt je niet direct commerciŽel), maar op een niveau als bovenstaand gaat me te ver.

Voor mijn part opent Mojang een kliklijn...

Hoe zet ik een OpenPGP keyserver op? Deel I: uitleg, waarom en benodigdheden

Door Flippylosaurus op zondag 4 september 2016 21:26 - Reacties (7)
Categorie: -, Views: 1.087

Ik merk op dat Tweakblogs de laatste tijd helemaal wordt platgespamd door Yarden's Yalden's gespam over een paar zinnetjes in een artikel die in zijn ogen incorrect zijn, waarop andere bloggers weer reageren en op z'n beurt zit de hele "Nu op Tweakblogs" sectie op de FP vol met artikelen die op ťťn of andere manier iets met Yalden te maken hebben.
Aangezien het een tijdje geleden is dat ik wat heb geschreven ga ik even wat schrijven over een projectje van me wat nu bezig is. Het is een OpenPGP keyserver! Ik ga het even opsplitsen in verschillende delen omdat ik nu geen zin heb om in de techische details te duiken.
Ik ben zelf de beheerder van pgpkeyserver.nl (waarom dat vrij was weet ik ook niet) en wil graag wat informatie delen.
Ik hoop wat mensen geÔnterreseerd hier in te krijgen omdat je dan eindelijk wat load krijgt op de server die toch niks staat te doen.
Zoals de titel zegt ga ik het systeem uitlegen, het over het waarom hebben en de benodigdheden opnoemen.

Uitleg

PGP is een systeem om beveiligd met elkaar te communiceren. Het staat ook wel bekend als GPG, OpenPGP of GnuPG. Ik gebruik vaak die termen door elkaar, maar ze hebben allemaal dezelfde betekenis als we het over standaarden hebben.

Als jij een beveiligde mail naar een ander persoon wilt sturen heb jij zijn publieke sleutel nodig. Die kan je op een keyserver vinden. Die keyservers zijn met elkaar verbonden in een soortement mesh. Als jij een server opzet moet jij andere servers in je netwerk hebben (in vaktaal "peeren") die met jou gegevens delen die op hun servers worden geŁpload of die doorgestuurd worden van andere servers.

Wat ik mij aan het begin afvroeg: hoe weet je zeker dat die persoon is wie hij is? Hiervoor is het Web of Trust ontwikkeld. Dit is een gedecentralizeerde variant op een Certificaat Authoriteit. In plaats van door ťťn organisatie geverifieerd worden waarvan je niet zeker weet of die organisatie 100% OK is laat jij jezelf verifieren door een heleboel mensen. VerifiŽren is het signeren van iemands publieke sleutel en dit weer uploaden naar een keyserver. Je kan je eigen keys ook signeren. Dit is bijvoorbeeld handig als je een nieuwe sleutel neemt. Als jij een nieuwe sleutel neemt, signeer je je nieuwe sleutel met de oude sleutel op een maximaal vertrouwensniveau. Bij mijn sleutel (http://pgpkeyserver.nl/pk...arch=0xA4B8697C&op=vindex) kan je bijvoorbeeld zien dat die is gesigneerd door iemand met dezelfde naam met vertrouwensniveau 3. Dit staat er als volgt:

sig sig3 20EBC59A 2016-07-31 __________ __________ Flippylosaurus <hillebrand@flippylosaurus.eu>

Elke sleutel heeft een uniek ID. Mijn oude sleutel heeft UID 0x20EBC59A, mijn nieuwe heeft 0xA4B8697C.

Het mooie is is dat als je je sleutel op ťťn server upload dat het binnen enkele minuten over het hele internet is te zien. 99,9% van alle servers gebruiken SKS. SKS is een server die een nieuw algoritme gebruikt om met minimale load sleutels efficient te delen. Vroegere servers gebruikten PKS. Dit maakt(e) gebruik van E-mail. Je kan nog steeds mailsync (zo heet dat protocol) gebruiken, maar ik raad het af om dat te gebruiken.

Nog even terug op het Web of Trust. Mensen kunnen elkaars sleutel signeren; bevestigen dat die persoon is wie hij claimt te zijn. Dit gebeurt op grote schaal tijdens keysigning parties (https://en.wikipedia.org/wiki/Key_signing_party). Je kan letterlijk aan iedereen met een sleutel vragen of hij je sleutel signeert. Die persoon mag je dan om een ID-kaart of paspoort vragen. Dit is normaal, om te verifiŽren dat de naam op de sleutel je echte naam is. Ook is het handig om te verifiŽren dat je de sleutel van de echte persoon signed en niet een toevallige key met de zelfde UID door fingerprints te vergelijken. Je kan het een stapje hoger zetten door een bericht te encrypten tussen de 2 partijen om te verifiŽren dat beide partijen de goede sleutels hebben.

Ohja, over dat 'peeren'. Je kan niet zomaar iemands anders' server in jouw lijst zetten. Beide partijen moeten elkaars servers in hun lijsten hebben voordat er sleutels worden uitgedeeld. Ik raad het aan om - als je een server werkend hebt - dit te vragen op een mailinglist als sks-devel@nongnu.org. Laat je niet afschrikken door de naam, dit is echt niet alleen voor developers! Hier komen ook vaak mensen die willen peeren.


Waarom?

Het is simpelweg leuk. Je doet de community een plezier, je helpt mee met een groot netwerk van keyservers, en je maakt een alternatief op pgp.mit.edu (die best brak is), en je leert wat meer over keyservers.

Benodigdheden

Vrij simpel. Je moet:
  • Verstand van Linux hebben
  • Een stel hersens hebben
  • Doorzettingsvermogen hebben
  • Kunnen wachten
  • Een server hebben met goede uplink
  • Een werkende koffiemachine hebben
  • Zin hebben om man pages door te lezen
Heb je nķ al interesse en wil je niet gauw genoeg beginnen? Hier zijn een paar handige linkjes.

http://manpages.debian.org/man8/sks
https://bitbucket.org/sks...ks-keyserver/wiki/Peering
http://www.keysigning.org/sks/

P.S.: Als je hulp nodig hebt, vraag het! Ik wil ook graag peeren met servers die stabiel zijn. Stuur me even een PM of een mailtje.

P.P.S.: Vragen zijn altijd welkom! Laat ze als-je-blieft achter.

P.P.P.S.: Ik ben niet heel bekend met bloggen. Mocht je opmerkingen over mijn schrijfstijl hebben, meld ze!

Tweakers op Telegram - update!

Door Flippylosaurus op woensdag 1 juni 2016 11:24 - Reacties (18)
Categorie: PHP, Views: 4.774

Even vooraf: als jij de eigenaar bent/kent van @Tweakers (een kanaal dat al meerdere maanden platligt), PM me!
Hallo beste Tweakers,

Ik heb succesvol @TweakersChannel op Telegram in de lucht gezet! Dit is een channel die elke 5 minuten de laatste berichten van Tweakers.net uitspuugt. Het is geschreven in PHP (source code zal ik later op eigen Git repo zetten). Ik maak gebruik van de RSS feed. Het is ook leuk om even de obstakels te beschrijven voor degenen met interesse daarin :)

datetime() verwacht Long, heeft object gekregen

De library die ik gebruik om RSS uit te lezen (https://github.com/dg/rss-php) is helaas een beetje maf als het gaat om de timestamp die het uitspuugt. Als we het volgende:


code:
1
2
3
4
5
6
7
$rss = Feed::loadRss(RSS_URL);

foreach ($rss->item as $item) {
    $minimumtimestamp = time() - CRON_SYNC_TIME;
    $timestamp = $item->timestamp;
    echo date("H:i:s", $timestamp);
}



uitvoeren, krijgen we deze error:

PHP Warning: gmdate() expects parameter 2 to be long, object given in /root/cron/php-tweakers-bot/cron.php on line 139

Top. Als we echo door print_r vervangen, krijgen we dit:

code:
1
2
3
4
Object
{
        [0] => 123456789
}



Oftewel: de timestamp zit in een object. Moeilijk googelen, simpel opgelost:

code:
1
echo date("H:i:s", intval($timestamp));



That's it.

De raw RSS bevat een <img> tag

Ik weet niet wat er in die image hoort te zitten, maar het is gewoon wit/blanco. Dus:


code:
1
$descriptionStripped = preg_replace("/<[^>]*>/", '', $item->description);



That's it.

Ik hoop dat jullie wat aan het kanaal hebben :)

Update: de bot draait nu op @Tweakers en heeft nu (als test) de meuktracker weg, alleen lijkt het dat die feed heel erg vertraagt is... Ook staat de code nu op GitHub: https://github.com/Flippylosaurus/php-tweakers-bot

[WIP] Iomega zipdrive op de pijnbank

Door Flippylosaurus op maandag 18 april 2016 11:20 - Reacties (14)
Categorie: Elektronica, Views: 3.886

(even een woordje vooraf: zoals in de titel staat is dit een WIP project. Foto’s zal ik later toevoegen.)
Zoals de titel zegt: we gaan een Iomega Zipdrive op de pijnbank leggen.

Lees verder »