Skip to content

Instantly share code, notes, and snippets.

@binux
Last active October 11, 2015 11:38
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 binux/1c9df190520c6f18efc3 to your computer and use it in GitHub Desktop.
Save binux/1c9df190520c6f18efc3 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
swf = open('core.swf').read()
KEY = 'dkrltl0%4*@jrky#@$'
def decrypt(p1, p2=1):
l3 = None
l5 = 0
l6 = 0
l7 = 0
l4 = ''
while l7 < len(p1):
if l5 >= len(KEY):
l5 = 0
l6 += 1
if l6 >= 50:
l3 = ''
l4 += p1[50*len(KEY):]
break
if p2 == 1:
l4 += chr((ord(p1[l7])+ord(KEY[l5])) & 0xff)
else:
l4 += chr(ord(p1[l7])-ord(KEY[l5]) & 0xff)
l7 += 1
l5 += 1
return l4
open('core.decrypt.swf', 'w').write(decrypt(swf, 0))
var signStr:String = Util.getSecretStr(Param.RoomId + "&" + min,"2");
var urlrequest:URLRequest = new URLRequest(GlobalData.SHARE_API + "/" + Param.RoomId + "?cdn=" + Param.CDN + "&nofan=yes&_t=" + min + "&sign=" + signStr);
urlrequest.method = URLRequestMethod.POST;
public static function getSecretStr(param1:String, param2:String = "0") : String
{
var _loc3_:int = CModule.mallocString(param1);
var _loc4_:int = CModule.mallocString(param2);
var _loc5_:int = CModule.malloc(8);
var _loc6_:int = LodeC.aa(_loc3_,param1.length,_loc4_,_loc5_);
var _loc7_:String = CModule.readString(_loc5_,_loc6_);
return _loc7_;
}
public static function aa(param1:int, param2:int, param3:int, param4:int) : int
{
return _wrap_aa(param1,param2,param3,param4);
}
public function _wrap_aa(param1:int, param2:int, param3:int, param4:int) : int
{
var _loc10_:* = undefined;
var _loc8_:* = 0;
var _loc6_:* = 0;
var _loc12_:* = 0;
var _loc11_:* = 0;
var _loc9_:* = 0;
var _loc7_:int = ESP;
_loc8_ = _loc7_;
_loc6_ = param1;
_loc12_ = param2;
_loc11_ = param3;
_loc9_ = param4;
_loc7_ = _loc7_ - 16;
si32(_loc9_,_loc7_ + 12);
si32(_loc11_,_loc7_ + 8);
si32(_loc12_,_loc7_ + 4);
si32(_loc6_,_loc7_);
ESP = _loc7_;
F_aa();
_loc7_ = _loc7_ + 16;
_loc6_ = eax;
var _loc5_:* = _loc6_;
_loc10_ = _loc5_;
_loc7_ = _loc8_;
ESP = _loc7_;
return _loc10_;
}
package sample.LodeC
{
public function F_aa() : void
{
var _loc5_:* = 0;
var _loc6_:* = 0;
var _loc1_:* = 0;
var _loc8_:* = 0;
var _loc2_:* = 0;
var _loc4_:* = 0;
var _loc15_:* = 0;
var _loc16_:* = 0;
var _loc14_:* = 0;
var _loc13_:* = 0;
var _loc17_:* = 0;
var _loc9_:* = 0;
var _loc11_:* = 0;
var _loc10_:* = 0;
var _loc7_:* = 0;
var _loc3_:int = ESP;
_loc5_ = _loc3_;
_loc3_ = _loc3_ - 1104;
_loc4_ = 0;
si32(_loc4_,_loc5_ - 20);
si32(_loc4_,_loc5_ - 24);
si32(_loc4_,_loc5_ - 28);
si32(_loc4_,_loc5_ - 32);
si32(_loc4_,_loc5_ - 36);
si32(_loc4_,_loc5_ - 40);
si32(_loc4_,_loc5_ - 44);
si32(_loc4_,_loc5_ - 48);
si32(_loc4_,_loc5_ - 52);
si32(_loc4_,_loc5_ - 56);
si32(_loc4_,_loc5_ - 60);
si32(_loc4_,_loc5_ - 64);
si32(_loc4_,_loc5_ - 68);
si32(_loc4_,_loc5_ - 72);
si32(_loc4_,_loc5_ - 76);
si32(_loc4_,_loc5_ - 80);
_loc17_ = li8(__define_I + 27);
si8(_loc17_,_loc5_ - 48);
_loc16_ = li8(__define_I + 9);
si8(_loc16_,_loc5_ - 36);
_loc15_ = _loc5_ - 48;
_loc17_ = _loc15_ | 2;
_loc14_ = li8(__define_I + 38);
si8(_loc14_,_loc17_);
_loc13_ = _loc15_ | 3;
_loc17_ = li8(__define_I);
si8(_loc17_,_loc13_);
_loc17_ = _loc15_ | 1;
_loc13_ = li8(__define_I + 34);
si8(_loc13_,_loc17_);
_loc17_ = li8(__define_I + 39);
si8(_loc17_,_loc5_ - 44);
_loc13_ = li8(__define_I + 17);
si8(_loc13_,_loc5_ - 38);
_loc17_ = li8(__define_I + 61);
si8(_loc17_,_loc5_ - 42);
_loc17_ = li8(__define_I + 29);
si8(_loc17_,_loc5_ - 41);
_loc17_ = li8(__define_I + 65);
si8(_loc17_,_loc5_ - 40);
var _loc12_:* = li8(__define_I + 42);
si8(_loc12_,_loc5_ - 43);
si8(_loc16_,_loc5_ - 39);
_loc12_ = li8(__define_I + 28);
si8(_loc12_,_loc5_ - 33);
si8(_loc13_,_loc5_ - 37);
si8(_loc16_,_loc5_ - 34);
_loc16_ = li8(__define_I + 68);
si8(_loc16_,_loc5_ - 35);
_loc16_ = li8(__define_I + 63);
si8(_loc16_,_loc5_ - 80);
_loc11_ = _loc5_ - 80;
_loc16_ = _loc11_ | 1;
si8(_loc14_,_loc16_);
_loc14_ = _loc11_ | 2;
_loc16_ = li8(__define_I + 60);
si8(_loc16_,_loc14_);
_loc16_ = _loc11_ | 3;
_loc14_ = li8(__define_I + 5);
si8(_loc14_,_loc16_);
_loc14_ = li8(__define_I + 48);
si8(_loc14_,_loc5_ - 76);
_loc16_ = li8(__define_I + 62);
si8(_loc16_,_loc5_ - 75);
_loc16_ = li8(__define_I + 1);
si8(_loc16_,_loc5_ - 74);
_loc16_ = li8(__define_I + 3);
si8(_loc16_,_loc5_ - 73);
_loc16_ = li8(__define_I + 24);
si8(_loc16_,_loc5_ - 72);
_loc16_ = li8(__define_I + 31);
si8(_loc16_,_loc5_ - 71);
si8(_loc14_,_loc5_ - 70);
_loc14_ = li8(__define_I + 50);
si8(_loc14_,_loc5_ - 69);
si8(_loc17_,_loc5_ - 68);
_loc14_ = li8(__define_I + 64);
si8(_loc14_,_loc5_ - 67);
_loc14_ = li8(__define_I + 67);
si8(_loc14_,_loc5_ - 66);
si8(_loc17_,_loc5_ - 65);
_loc10_ = li32(_loc5_ + 8);
if(_loc10_ != 0)
{
_loc10_ = li8(_loc10_);
_loc15_ = L__2E_str14;
if(_loc10_ != 49)
{
_loc15_ = L__2E_str25;
if(_loc10_ != 50)
{
_loc15_ = _loc5_ - 48;
if(_loc10_ == 51)
{
_loc15_ = _loc11_;
}
}
}
}
_loc11_ = li32(_loc5_ + 12);
_loc1_ = li32(_loc5_ + 4);
_loc6_ = li32(_loc5_);
_loc3_ = _loc3_ - 16;
si32(1024,_loc3_ + 8);
si32(_loc4_,_loc3_ + 4);
_loc10_ = _loc5_ - 1104;
si32(_loc10_,_loc3_);
ESP = _loc3_;
Fmemset();
_loc3_ = _loc3_ + 16;
while(_loc4_ < _loc1_)
{
_loc17_ = _loc6_ + _loc4_;
_loc17_ = li8(_loc17_);
if(_loc17_ == 38)
{
_loc3_ = _loc3_ - 16;
si32(_loc4_,_loc3_ + 8);
si32(_loc6_,_loc3_ + 4);
si32(_loc10_,_loc3_);
ESP = _loc3_;
Fmemcpy();
_loc3_ = _loc3_ + 16;
break;
}
_loc4_ = _loc4_ + 1;
}
_loc7_ = -1;
if(_loc1_ != _loc4_)
{
_loc8_ = _loc15_ & -4;
_loc14_ = li32(_loc8_);
_loc14_ = _loc14_ & -2139062144;
_loc14_ = _loc14_ ^ -2139062144;
_loc17_ = _loc14_ & _loc14_ + -16843009;
if(_loc17_ != 0)
{
_loc7_ = _loc8_ + 4;
_loc9_ = 0;
while(true)
{
_loc2_ = _loc15_ + _loc9_;
if(_loc2_ < _loc7_)
{
_loc17_ = li8(_loc2_);
if(_loc17_ != 0)
{
_loc9_ = _loc9_ + 1;
continue;
}
break;
}
}
_loc17_ = _loc9_ + _loc1_;
_loc7_ = -1;
if(_loc17_ <= 1024)
{
_loc3_ = _loc3_ - 32;
si32(_loc15_,_loc3_ + 12);
si32(_loc10_,_loc3_ + 8);
si32(L__2E_str4,_loc3_ + 4);
si32(_loc10_,_loc3_);
_loc17_ = _loc6_ + _loc4_;
_loc17_ = _loc17_ + 1;
si32(_loc17_,_loc3_ + 16);
ESP = _loc3_;
F_sprintf();
_loc3_ = _loc3_ + 32;
_loc6_ = _loc10_ & -4;
_loc14_ = li32(_loc6_);
_loc14_ = _loc14_ & -2139062144;
_loc14_ = _loc14_ ^ -2139062144;
_loc17_ = _loc14_ & _loc14_ + -16843009;
if(_loc17_ != 0)
{
_loc1_ = _loc6_ + 4;
_loc4_ = 0;
while(true)
{
_loc15_ = _loc10_ + _loc4_;
if(_loc15_ < _loc1_)
{
_loc17_ = li8(_loc15_);
if(_loc17_ != 0)
{
_loc4_ = _loc4_ + 1;
continue;
}
break;
}
}
_loc3_ = _loc3_ - 16;
_loc15_ = _loc5_ - 16;
si32(_loc15_,_loc3_ + 8);
si32(_loc4_,_loc3_ + 4);
si32(_loc10_,_loc3_);
ESP = _loc3_;
F_md5();
_loc3_ = _loc3_ + 16;
_loc10_ = 16;
do
{
_loc17_ = _loc15_ - _loc10_;
_loc17_ = li8(_loc17_ + 16);
_loc3_ = _loc3_ - 16;
si32(_loc17_,_loc3_ + 8);
si32(L__2E_str3,_loc3_ + 4);
si32(_loc11_,_loc3_);
ESP = _loc3_;
F_sprintf();
_loc3_ = _loc3_ + 16;
_loc10_ = _loc10_ + -1;
_loc11_ = _loc11_ + 2;
_loc7_ = 32;
}
while(_loc10_ != 0);
}
_loc4_ = _loc6_ + 4;
while(true)
{
_loc15_ = li32(_loc4_);
_loc17_ = _loc15_ + -16843009;
_loc14_ = _loc15_ & -2139062144;
_loc14_ = _loc14_ ^ -2139062144;
_loc17_ = _loc14_ & _loc17_;
if(_loc17_ != 0)
{
_loc17_ = _loc15_ & 255;
if(_loc17_ == 0)
{
_loc4_ = _loc4_ - _loc10_;
}
else
{
_loc17_ = li8(_loc4_ + 1);
if(_loc17_ == 0)
{
_loc17_ = 1 - _loc10_;
_loc4_ = _loc17_ + _loc4_;
}
else
{
_loc17_ = li8(_loc4_ + 2);
if(_loc17_ == 0)
{
_loc17_ = 2 - _loc10_;
_loc4_ = _loc17_ + _loc4_;
}
else
{
_loc17_ = li8(_loc4_ + 3);
if(_loc17_ == 0)
{
_loc17_ = 3 - _loc10_;
_loc4_ = _loc17_ + _loc4_;
}
else
{
continue;
}
}
}
}
§§goto(addr987);
}
}
}
}
_loc9_ = _loc8_ + 4;
while(true)
{
_loc7_ = li32(_loc9_);
_loc17_ = _loc7_ + -16843009;
_loc14_ = _loc7_ & -2139062144;
_loc14_ = _loc14_ ^ -2139062144;
_loc17_ = _loc14_ & _loc17_;
if(_loc17_ != 0)
{
_loc17_ = _loc7_ & 255;
if(_loc17_ == 0)
{
_loc9_ = _loc9_ - _loc15_;
}
else
{
_loc17_ = li8(_loc9_ + 1);
if(_loc17_ == 0)
{
_loc17_ = 1 - _loc15_;
_loc9_ = _loc17_ + _loc9_;
}
else
{
_loc17_ = li8(_loc9_ + 2);
if(_loc17_ == 0)
{
_loc17_ = 2 - _loc15_;
_loc9_ = _loc17_ + _loc9_;
}
else
{
_loc17_ = li8(_loc9_ + 3);
if(_loc17_ == 0)
{
_loc17_ = 3 - _loc15_;
_loc9_ = _loc17_ + _loc9_;
}
else
{
continue;
}
}
}
}
§§goto(addr751);
}
}
}
eax = _loc7_;
_loc3_ = _loc5_;
ESP = _loc3_;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment