Dissolved [stego]

dissolved

Dissolved... Image... What does that even mean?!

File: stego.png

Recon

Alpha channel value is 250 for some pixels instead of 255.

x,y pixel
2,571: (110, 105, 98, 250)
4,526: (100, 99, 97, 250)
5,857: (153, 141, 125, 250)
10,1404: (85, 80, 76, 250)
12,243: (82, 81, 78, 250)
20,141: (86, 84, 85, 250)
20,306: (118, 110, 106, 250)
20,649: (102, 99, 94, 250)
21,790: (180, 165, 145, 250)
28,25: (92, 87, 83, 250)
28,852: (165, 148, 133, 250)
34,571: (103, 102, 100, 250)
38,128: (84, 84, 84, 250)
41,108: (76, 76, 79, 250)
42,735: (154, 142, 126, 250)
46,60: (80, 79, 77, 250)
48,736: (158, 147, 129, 250)
58,990: (132, 122, 112, 250)
67,643: (96, 96, 97, 250)
75,1289: (88, 83, 79, 250)
82,657: (101, 100, 98, 250)
83,165: (100, 99, 95, 250)
88,1219: (89, 88, 84, 250)
90,739: (166, 153, 136, 250)
96,888: (149, 135, 122, 250)
101,1533: (80, 75, 70, 250)
105,182: (100, 99, 96, 250)
106,1526: (78, 73, 70, 250)
111,571: (64, 64, 64, 250)
114,181: (99, 98, 96, 250)
123,440: (110, 109, 106, 250)
124,666: (112, 107, 103, 250)
133,39: (87, 87, 87, 250)
133,738: (172, 161, 143, 250)
136,957: (134, 124, 115, 250)
144,1276: (91, 86, 83, 250)
145,1030: (117, 108, 103, 250)
...

Total of 312 pixels, which is 8x39, so 8 pixels form 1 character?

Solution

<?php
$a=file_get_contents("stego.rgba");
$o="";
for($i=0; $i<strlen($a); $i+=4) {
    if ($a[$i+3] != "\xff") {
       $o .= ord($a[$i+2]) & 1;
    }
}
for($i=0;$i<strlen($o);$i+=8) { echo chr(bindec(substr($o,$i,8))); }

LSB of Blue of alpha=250 = flag

00000000: 566f 6c67 6143 5446 7b54 7240 6e73 7061
VolgaCTF{Tr@nspa
00000010: 7233 6e63 795f 6731 7665 735f 664c 6167
r3ncy_g1ves_fLag
00000020: 5f61 7740 7921 7d6a f636 e686 c22a 62de
_aw@y!}j.6...*b.

Flag

VolgaCTF{Tr@nspar3ncy_g1ves_fLag_aw@y!}