Skip to content

Instantly share code, notes, and snippets.

@t0mm0
Created August 13, 2011 01:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t0mm0/1143358 to your computer and use it in GitHub Desktop.
Save t0mm0/1143358 to your computer and use it in GitHub Desktop.
quick and dirty vidxden js unpacking
#code from vidxden page:
#function(p,a,c,k,e,d){while(c--)if(k[c])p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k[c]);return p}('1b 0=1a 19(\'2://18.17.3/5/5.16\',\'5\',\'15\',\'14\',\'9\');0.4(\'13\',\'6\');0.4(\'12\',\'11\');0.4(\'10\',\'z\');0.1(\'y\',\'x\');0.1(\'w\',\'2://8.7.3:v/d/u/t.s.r.q.p.o-n.m\');0.1(\'l\',\'2://8.7.3/i/k/j.h\');0.1(\'g\',\'f\');0.1(\'e\',\'2\');0.1(\'c\',\'6\');0.b(\'a\');',36,48,'s1|addVariable|http|com|addParam|player|true|divxden|s08||flvplayer|write|autostart||type|video|provider|jpg||tofuw547qzsu|00109|image|flv|BAJSKORV|XVID|PDTV|S13E05|US|Brother|Big|47ul3valsetu45zgum4tmxbvrmpvqa6p5byoos3jacsje|364|file|2531|duration|opaque|wmode|always|allowscriptaccess|allowfullscreen|318|640|swf|vidxden|www|SWFObject|new|var'.split('|')))
import re
def unpack_js(p, k):
'''emulate js unpacking code'''
for x in range(len(k) - 1, -1, -1):
if k[x]:
p = re.sub('\\b%s\\b' % base36encode(x), k[x], p)
return p
def base36encode(number, alphabet='0123456789abcdefghijklmnopqrstuvwxyz'):
"""Convert positive integer to a base36 string. (from wikipedia)"""
if not isinstance(number, (int, long)):
raise TypeError('number must be an integer')
# Special case for zero
if number == 0:
return alphabet[0]
base36 = ''
sign = ''
if number < 0:
sign = '-'
number = - number
while number != 0:
number, i = divmod(number, len(alphabet))
base36 = alphabet[i] + base36
return sign + base36
p = '1b 0=1a 19(\'2://18.17.3/5/5.16\',\'5\',\'15\',\'14\',\'9\');0.4(\'13\',\'6\');0.4(\'12\',\'11\');0.4(\'10\',\'z\');0.1(\'y\',\'x\');0.1(\'w\',\'2://8.7.3:v/d/u/t.s.r.q.p.o-n.m\');0.1(\'l\',\'2://8.7.3/i/k/j.h\');0.1(\'g\',\'f\');0.1(\'e\',\'2\');0.1(\'c\',\'6\');0.b(\'a\');'
k = 's1|addVariable|http|com|addParam|player|true|divxden|s08||flvplayer|write|autostart||type|video|provider|jpg||tofuw547qzsu|00109|image|flv|BAJSKORV|XVID|PDTV|S13E05|US|Brother|Big|47ul3valsetu45zgum4tmxbvrmpvqa6p5byoos3jacsje|364|file|2531|duration|opaque|wmode|always|allowscriptaccess|allowfullscreen|318|640|swf|vidxden|www|SWFObject|new|var'.split('|')
print unpack_js(p, k)
#output is:
#var s1=new SWFObject('http://www.vidxden.com/player/player.swf','player','640','318','9');s1.addParam('allowfullscreen','true');s1.addParam('allowscriptaccess','always');s1.addParam('wmode','opaque');s1.addVariable('duration','2531');s1.addVariable('file','http://s08.divxden.com:364/d/47ul3valsetu45zgum4tmxbvrmpvqa6p5byoos3jacsje/Big.Brother.US.S13E05.PDTV.XVID-BAJSKORV.flv');s1.addVariable('image','http://s08.divxden.com/i/00109/tofuw547qzsu.jpg');s1.addVariable('provider','video');s1.addVariable('type','http');s1.addVariable('autostart','true');s1.write('flvplayer');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment