Några ord om opinionsundersökningar

Det har varit mycket kackel och debakel om opinionsundersökningarna före både brexit och amerikanska valet 2016. I bägge fallen blev folk förvånade att undersökningarna visade så pass fel. Här tänkte jag reda ut några saker som kan gå fel.

Läs mer

Publicerat i Matematik, Media, Uncategorized | Lämna en kommentar

Amnesty och prostitution

I augusti 2015 röstade internationella Amnesty igenom att verka för en legalisering av prostitution. ETC hävdar nu att beslutet grundade sig på en oseriös norsk rapport.

Jag har inte ens funderat på det där innan men logiken som förbudsivrarna använder känns inte helt sund. Här är tre problem som jag noterade vid en första anblick.

Läs mer

Publicerat i Orwellianskt, Politik | Lämna en kommentar


I veckan har det varit rabalder över att busschafförer vägrat köra med Prideflagga på bussen. Utan att känna till chaufförernas religion började jag ändå fundera lite om religioner och kulturkrockar.

Läs mer

Publicerat i Politik | Lämna en kommentar


March 24 2016 became the date when wartime Bosnian Serb leader Radovan Karadzic got his ICTY verdict.

Läs mer

Publicerat i Politik | 2 kommentarer

The Assange Case

Most people know Assange from the excellent work he did with WikiLeaks. But releasing information about American war crimes made him some powerful enemies. It was only a matter of time until they would find a way to get back at him.

In August 2010 these powerful people saw an opportunity. During a visit to Sweden Assange had sexual affairs with two women (who for legal reasons can not be named). Woman A happily tweeted about her relationship with Assange after the alleged rape took place. These tweets were later removed, but numerous screenshots are preserved. Exactly what happened the days afterwards is not fully known, but it is not unreasonable to assume that one of these powerful people reached out to woman A in some way and persuaded her (and her friend, the other woman) to press sexually political charges.

Now the larger political circus was set in motion. Remember that the U.S. was at the height of its power back then and no country on earth (except maybe Serbia for a short while, a move that was thoroughly punished as a warning signal to other countries) dared to go against the hegemonic will of the Empire. To believe Sweden has an independent justice system would be naive at best, a fact that was proven beyond doubt in the Pirate Bay political farce.

Assange said he was afraid Sweden would extradite him to the U.S. and at the time the politically correct Swedish establishment ridiculed him and labelled him a conspiracy nut. But time proved Assange right in his fears. Court documents published in May 2014 proves Assange was still under active and ongoing investigation at the time by several government agencies, including the FBI. In Assange’s earlier TV show World Tomorrow the president of Equador – Raphael Correa – said Assange was welcome to reach out to him if he ever found himself subject of political persecution (because of his work with WikiLeaks). Correa predicted events correctly and Assange later took refuge in the Embassy of Ecuador in London.

Every fact in this case points in the direction that Assange was right in his fears that Sweden would really extradite him to the U.S. if he set his foot in Sweden again. So Assange could not travel back to Sweden to respond to the rape allegations and the Swedish prosecution refused to travel to London to perform the hearing there (we can only guess on why they refused to travel, but it certainly looks like their refusal might be part of an attempt of getting Assange extradited). Well extradited he would likely face charges of being a malicious foreign actor and expect similar treatment as Bradley/Chelsea Manning.

In February 2016 the U.N. (UNWGAD) came to the same conclusion! They found that Assange’s residence in the Embassy of Ecuador – to avoid arrest and extradition to Sweden/U.S. – was arbitrary detention in violation of international law, and that Mr Assange should be afforded the right to compensation.

Now the U.K. and Sweden really faced a dilemma. Should they follow the U.N. decision and international law or should they continue to be stooges of the Empire? Well it is a rhetorical question. Of course they chose the stooge path…

The Guatemalan human rights lawyer Renata Avila sums it up perfectly:

Publicerat i Orwellianskt, Politik | 1 kommentar

Writeup 32c3 traces

In this challenge we only got one file, without any hints at all.

The zip-file contains one big file, data.csv.

From the comments at the top of the file:


From this we can guess that column 2 is PCLK, column 5 is FV, column 6 LV and columns 7-16 are D9-D0.

The rest of the lines are all data, like this:


To pick out the relevant columns from data.csv I used the following command:

cat data.csv | awk -F ',' \
'{print $2 " " $5$6$7$8$9$10$11$12$13$14$15$16}' \
> clean.csv

Searching for PCLK, FV and LV it becomes clear that PCLK is a pin which is triggered on positive flank (the other data pins should be read on positive flank for PCLK). FV and LV seems to mean Frame Valid and Line Valid. So I assumed the other data pins, D9-D0 should be read when both LV and FV are 1.


Then I manually removed the first lines – until only data remains – in clean.csv and removed the 0x0d newline characters with the command: dos2unix clean.csv.

Now I wrote a python program to read clean.csv and pick out data values on positive flank when both LV and FV are 1. Each value is divided by 4 to get 8-bit pixel data instead of 10 bits and finally written to output.data.

Then the output.data file can be opened with gimp. Select raw pixel data, choose indexed mode and guess width as 752, then the picture lines aligns nicely and the flag appears. You can experiment until you find the correct width in the open dialogue in gimp.

The final image:


Publicerat i CTF, Uncategorized | 2 kommentarer

Writeup 32c3 hd44780

While watching the 32c3 talks over the internet I also participated solo in the CTF and spent most of the time on the challenge hd44780. The files are here.

Note that there are not many hints given. Just some pictures, and the name hd44780. Searching for hd44780 I found a datasheet which describes a display controller chip.

DisplayThe first image shows a 4*20 character display and some pin numbers. Other images shows some soldering which can be used to figure out how the hd44780 is connected to the display.

A similar setup is described in this tutorial, but the pinouts are different. Together with the images are some text files named RSPI_GPIO_*.txt, wher star is 7, 8, 18, 23, 24 and 25. Each file contains two lines with a number of floats on both rows. After some guessing I figured out that the first line is measurement time and the second line is either a 1 or a 0 for the corresponding times.

The next guess is that each data file contains measurements for one pin and that the timing values can be used to synchronize the values from the different files.

After some guessing and irc-discussion with another CTF player I figured out that the pinout is as following:

7 – Select
8 – Enable
18 – db7 (data pin number 7)
23 – db6
24 – db5
25 – db4

Now I made a big mistake, trying to code up something without carefully studying the datasheet. So after some trial and error, and reading up on the datasheet I figured out how to approach the problem.

Loop through the datafile for the enable pin (pin 8). Each time this pin changes from a 0 to a 1, check the other data files and look what values they have at that corresponding time. Then use the information from the datasheet to figure out what the display would do.

It turns out that when the select pin is 0 the 4 data pins are used to send a special message to the display (like clear screen or move cursor) and when the select pin is 1 a character is output to the display at the current cursor position and the cursor is advanced one position.

If you look at the datasheet you see that each message is actually 8 bits. It turns out that the display can be operated in 4-bit mode and there is actually a special message sent near the beginning that sets the display in 4-bit mode. In this mode the high nibble and low nibble are sent separately, so one character is output using two writes (a write is done each time enable goes from 0 to 1).

Another strange behaviour is that the address space is kind of weird. Characters for the two first lines are at address 0 to 39. Nothing strange there. But then there is a gap and the third line starts at address 64. This needs to be handled when moving the cursor around.

Now when we know how everything works, take a look at the python code that emulates the display taking the values from the data pins as input.

Link to the code

The program is a bit buggy, but if you look at it you see that dump_display is called at every move cursor event, and that information can be used to figure out the flag.

Publicerat i CTF | Lämna en kommentar