I Think I found it,
The input included a few backslash characters to escape a forward slash (forward slash is valid base64 char,
why the server escapes it within a string? maybe a javascript thing - IDK)
15k\/INek16jXpyAxIiwibWVkaWFfY29kZSI6Ijg4OTIzNyIsIm1lZGlhX2Rlc2MiOiLXkNeZ16TXlCD
It would be great if the Base64 decoder would print the value and offset of the character on which it choked
The only way for me to locate this was to implement/port base64 decoder (included here for "fun")
' based on https://en.wikibooks.org/wiki/Algorithm_Implementation/Miscellaneous/Base64
Function Decode64FromFile(fname as String) as String
WHITESPACE_CHR=64
EQUALS_CHR=65
INVALID_CHR=66
d = [
66,66,66,66,66,66,66,66,66,66,64,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,62,66,66,66,63,52,53,
54,55,56,57,58,59,60,61,66,66,66,65,66,66,66, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,66,66,66,66,66,66,26,27,28,
29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,66,66,
66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,
66,66,66,66,66,66
]
iter = 0
buf = 0
currLen = 0
baIn = CreateObject("roByteArray")
baOut = CreateObject("roByteArray")
baIn.ReadFile(fname)
inCount=0
for each inByte in baIn
c = d[inByte]
inCount+=1
if c=INVALID_CHR
print "Invalid character X at postion Y", inByte, inCount-1
else if c=WHITESPACE_CHR
' ignore
print "ignore whitespace"
else if c=EQUALS_CHR
exit for
else
buf = (buf<<6) or c
iter+=1 ' increment the number of iteration
' If the buffer is full, split it into bytes
if iter = 4
currLen += 3
baOut.push((buf >> 16) and 255)
baOut.push((buf >> 😎 and 255)
baOut.push(buf and 255)
buf = 0
iter = 0
end if
end if
end for
if iter = 3
currLen += 2
baOut.push((buf >> 10) and 255)
baOut.push((buf >> 2) and 255)
else if iter = 2
currLen += 1
baOut.push((buf >> 4) and 255)
end if
return baOut.ToAsciiString()
end function
Private apps: IsraTV (replaces IsraIBA, IsraNews2, IsraI24, Isra10, Isra20)
Users - to report issues with the app (not content of streams please) send me a tweet - @quartern_roku and follow (so we can DM)