JavaScript Deobfuscation Tool
Demo: https://deo.sigr.io
npm install
npm run serve
npm run build
npm run lint
Web client and decoding server run using firebase hosting & cloud functions.
firebase serve
firebase deploy
A deobfuscator for JavaScript codes generated by Obfuscator.io
Home Page: https://deo.sigr.io/
JavaScript Deobfuscation Tool
Demo: https://deo.sigr.io
npm install
npm run serve
npm run build
npm run lint
Web client and decoding server run using firebase hosting & cloud functions.
firebase serve
firebase deploy
Hello LostMyCode,
I tried reaching out to you through your discord (wildspeed) about a security issue in your code. Could you check your discord DMs from user "steakenthusiast", or provide me with an alternative form of contact?
All the best.
for some reason i cannot get it to work with this file https://pastebin.com/CSJtS8kz. I put target function a6_0x16eb. Please help.
while trying to deobfuscate the code obfusacted by obfuscator.io im getting the error: "Invalid obfuscation type! Please report to us or try again."
it didn't working......
https://obfuscator.io/
example code:
function hi() {
console.log("Hello World!");
}
hi();
output:
var _0x35e4=['1084824sdEayT','return\x20/\x22\x20','bind','504073uKzhvS','constructo','470775iPrxdC','nction()\x20','331777YYljVx','1007071aBnBUn','1lztQTk','return\x20(fu','rn\x20this\x22)(','prototype','apply','error','log','__proto__','Hello\x20Worl','491753KxDBmX','table','length','^([^\x20]+(\x20+','274557wkKsFU','test','info','trace','toString','warn','console'];var _0x1570=function(_0x5850ee,_0x331fe3){_0x5850ee=_0x5850ee-0x11f;var _0xe4d05e=_0x35e4[_0x5850ee];return _0xe4d05e;};(function(_0x628e9,_0x533dd3){var _0x372fb0=_0x1570;while(!![]){try{var _0x5c4dde=-parseInt(_0x372fb0(0x12a))+parseInt(_0x372fb0(0x123))+parseInt(_0x372fb0(0x139))+-parseInt(_0x372fb0(0x135))+-parseInt(_0x372fb0(0x128))+parseInt(_0x372fb0(0x126))*-parseInt(_0x372fb0(0x12c))+parseInt(_0x372fb0(0x12b));if(_0x5c4dde===_0x533dd3)break;else _0x628e9['push'](_0x628e9['shift']());}catch(_0x31662){_0x628e9['push'](_0x628e9['shift']());}}}(_0x35e4,0x8ab0a));function hi(){var _0x392672=_0x1570,_0x5d5a4d=function(){var _0x266744=!![];return function(_0x333bc7,_0x26c57a){var _0xdcfdca=_0x266744?function(){var _0x1d0265=_0x1570;if(_0x26c57a){var _0x55db0f=_0x26c57a[_0x1d0265(0x130)](_0x333bc7,arguments);return _0x26c57a=null,_0x55db0f;}}:function(){};return _0x266744=![],_0xdcfdca;};}(),_0x2734da=_0x5d5a4d(this,function(){var _0x53385b=function(){var _0x46b2bb=_0x1570,_0x1921e2=_0x53385b[_0x46b2bb(0x127)+'r'](_0x46b2bb(0x124)+'+\x20this\x20+\x20\x22'+'/')()[_0x46b2bb(0x127)+'r'](_0x46b2bb(0x138)+'[^\x20]+)+)+['+'^\x20]}');return!_0x1921e2[_0x46b2bb(0x13a)](_0x2734da);};return _0x53385b();});_0x2734da();var _0x4c9014=function(){var _0x29fca2=!![];return function(_0x519fa5,_0x5d069d){var _0x2a33ff=_0x29fca2?function(){if(_0x5d069d){var _0x59f962=_0x5d069d['apply'](_0x519fa5,arguments);return _0x5d069d=null,_0x59f962;}}:function(){};return _0x29fca2=![],_0x2a33ff;};}(),_0x4cfb50=_0x4c9014(this,function(){var _0x302407=_0x1570,_0xcc95e4;try{var _0x3274b5=Function(_0x302407(0x12d)+_0x302407(0x129)+('{}.constru'+'ctor(\x22retu'+_0x302407(0x12e)+'\x20)')+');');_0xcc95e4=_0x3274b5();}catch(_0x1ed911){_0xcc95e4=window;}var _0x30b9ab=_0xcc95e4['console']=_0xcc95e4[_0x302407(0x122)]||{},_0x42bc8c=[_0x302407(0x132),_0x302407(0x121),_0x302407(0x13b),_0x302407(0x131),'exception',_0x302407(0x136),_0x302407(0x11f)];for(var _0x1554f5=0x0;_0x1554f5<_0x42bc8c[_0x302407(0x137)];_0x1554f5++){var _0x1a208d=_0x4c9014['constructo'+'r'][_0x302407(0x12f)][_0x302407(0x125)](_0x4c9014),_0x4f723f=_0x42bc8c[_0x1554f5],_0x12eeb3=_0x30b9ab[_0x4f723f]||_0x1a208d;_0x1a208d[_0x302407(0x133)]=_0x4c9014[_0x302407(0x125)](_0x4c9014),_0x1a208d[_0x302407(0x120)]=_0x12eeb3['toString'][_0x302407(0x125)](_0x12eeb3),_0x30b9ab[_0x4f723f]=_0x1a208d;}});_0x4cfb50(),console['log'](_0x392672(0x134)+'d!');}hi();
error:
[Error] Invalid obfuscation type! Please report to us or try again.
I am having a js code obfuscated in a different type which isn't supported in this tool. Look at this code here
Hi, I'm trying to deobfuscate a code but it won't work.. :(
It says: "[Error] Invalid obfuscation type! Please report to us or try again."
var _0x5858 = function(_0x53270e, _0x3067c5) {
_0x53270e = _0x53270e - 0x0;
var _0x585883 = _0x3067[_0x53270e];
if(_0x5858['iddfLy'] === undefined) {
var _0xe1c0d3 = function(_0x53640d) {
var _0x290b8d = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';
var _0x59f58e = String(_0x53640d)['replace'](/=+$/, '');
var _0x1df8de = '';
for(var _0x375b27 = 0x0, _0x13f4f3, _0x1cce65, _0x9ef3cb = 0x0; _0x1cce65 = _0x59f58e['charAt'](_0x9ef3cb++); ~_0x1cce65 && (_0x13f4f3 = _0x375b27 % 0x4 ? _0x13f4f3 * 0x40 + _0x1cce65 : _0x1cce65, _0x375b27++ % 0x4) ? _0x1df8de += String['fromCharCode'](0xff & _0x13f4f3 >> (-0x2 * _0x375b27 & 0x6)) : 0x0) {
_0x1cce65 = _0x290b8d['indexOf'](_0x1cce65);
}
return _0x1df8de;
};
_0x5858['hJuRYQ'] = function(_0x5b0931) {
var _0xe17949 = _0xe1c0d3(_0x5b0931);
var _0x5975a9 = [];
for(var _0x37540a = 0x0, _0x24bb88 = _0xe17949['length']; _0x37540a < _0x24bb88; _0x37540a++) {
_0x5975a9 += '%' + ('00' + _0xe17949['charCodeAt'](_0x37540a)['toString'](0x10))['slice'](-0x2);
}
return decodeURIComponent(_0x5975a9);
};
_0x5858['GAWYVA'] = {};
_0x5858['iddfLy'] = true;
}
var _0x104c4d = _0x5858['GAWYVA'][_0x53270e];
if(_0x104c4d === undefined) {
_0x585883 = _0x5858['hJuRYQ'](_0x585883);
_0x5858['GAWYVA'][_0x53270e] = _0x585883;
} else {
_0x585883 = _0x104c4d;
}
return _0x585883;
};
Source code
// Paste your JavaScript code here function hi() { console.log("Hello World!"); } hi();
Obfuscated code (default obfuscation settings used)
function _0x2258(){var _0x43bd84=['607150VwkcPH','875726lkSxRi','271698iGCpUj','776jJcXcO','51758JmSbvr','3520FXkMak','3844XfOikj','45Ssnrjo','3SakWBe','819127MSDUAo','Hello\x20World!','log','37905439HRFQhR'];_0x2258=function(){return _0x43bd84;};return _0x2258();}function _0x3c34(_0x4b026f,_0x2f97cf){var _0x2258d8=_0x2258();return _0x3c34=function(_0x3c34ff,_0xea61be){_0x3c34ff=_0x3c34ff-0x183;var _0x14fb0c=_0x2258d8[_0x3c34ff];return _0x14fb0c;},_0x3c34(_0x4b026f,_0x2f97cf);}(function(_0x5202db,_0x163c0b){var _0x5a36d6=_0x3c34,_0x40bbc7=_0x5202db();while(!![]){try{var _0x42e468=-parseInt(_0x5a36d6(0x184))/0x1+-parseInt(_0x5a36d6(0x189))/0x2*(parseInt(_0x5a36d6(0x183))/0x3)+-parseInt(_0x5a36d6(0x18e))/0x4*(parseInt(_0x5a36d6(0x18d))/0x5)+parseInt(_0x5a36d6(0x18a))/0x6+parseInt(_0x5a36d6(0x18c))/0x7*(-parseInt(_0x5a36d6(0x18b))/0x8)+parseInt(_0x5a36d6(0x18f))/0x9*(-parseInt(_0x5a36d6(0x188))/0xa)+parseInt(_0x5a36d6(0x187))/0xb;if(_0x42e468===_0x163c0b)break;else _0x40bbc7['push'](_0x40bbc7['shift']());}catch(_0x27e119){_0x40bbc7['push'](_0x40bbc7['shift']());}}}(_0x2258,0x83149));function hi(){var _0x4b68f6=_0x3c34;console[_0x4b68f6(0x186)](_0x4b68f6(0x185));}hi();
Getting 'invalid obfuscation type' with any target function (tested hi and _0x2258) and 'Server error! Please check target code and name of target function.' when tryed _0x3c34 as target function
In fact I need to deobfuscate much bigger script, but get same problem :)
var obf = ["aaa", "bbb", ["ccc", "real"]];
console.log(obf[2][1]); // output = real
[Error] Server error! Please check target code and name of target function.
lol i just randomly found this while testing stuff
test with opera gx (private window and normal) and chrome
code on vid
function notok(msg, useless) {
return useless + msg;
}
console.log(notok("aaaaa", "uwu"));
Please help me to decode this code?
var _0xd6f026=_0x2d86;(function(_0x2996b7,_0x1a4b41){var _0x37bf68=_0x2d86,_0x3a9299=_0x2996b7();while(!![]){try{var _0x21e380=-parseInt(_0x37bf68(0x1e9))/0x1+-parseInt(_0x37bf68(0x1e2))/0x2+-parseInt(_0x37bf68(0x1e1))/0x3+-parseInt(_0x37bf68(0x1e6))/0x4+-parseInt(_0x37bf68(0x1ec))/0x5+-parseInt(_0x37bf68(0x1ed))/0x6*(-parseInt(_0x37bf68(0x1f2))/0x7)+parseInt(_0x37bf68(0x1ee))/0x8;if(_0x21e380===_0x1a4b41)break;else _0x3a9299'push';}catch(_0x12164b){_0x3a9299'push';}}}(_0x1753,0xcc66f));var _0x4ce822=(function(){var _0x219cf9=!![];return function(_0x450399,_0x14910a){var _0x474ca4=_0x219cf9?function(){var _0x3ebace=_0x2d86;if(_0x14910a){var _0x127f71=_0x14910a_0x3ebace(0x1f1);return _0x14910a=null,_0x127f71;}}:function(){};return _0x219cf9=![],_0x474ca4;};}()),_0x57d40e=_0x4ce822(this,function(){var _0x465e86=_0x2d86,_0x9c4956=function(){var _0x59b7e1=_0x2d86,_0x2e6a4e;try{_0x2e6a4e=Function(_0x59b7e1(0x1f5)+_0x59b7e1(0x1e5)+');')();}catch(_0xefedd){_0x2e6a4e=window;}return _0x2e6a4e;},_0x362c10=_0x9c4956(),_0x10f15a=new RegExp('[bQIWRJwfJbGWSANTWQMuFHHuQyfXFwUDKWLFHVDAjJKVHOauFDXjUYSjLIZxwxCQZFyPjwPZDTVRaCWwBAaDOSIxbqNGOXxGJYGQfyRfJqpYzpNLwBQxRKU]','g'),_0x170bc9=_0x465e86(0x1ef)_0x465e86(0x1e0)_0x465e86(0x1e7),_0x15ae3f,_0x3cb5e7,_0x3517a7,_0x488d6b,_0x3a45d1=function(_0x473b99,_0x55cc7d,_0x5dce84){var _0x12ede5=_0x465e86;if(_0x473b99[_0x12ede5(0x1df)]!=_0x55cc7d)return![];for(var _0x52a972=0x0;_0x52a972<_0x55cc7d;_0x52a972++){for(var _0x29a5d4=0x0;_0x29a5d4<_0x5dce84['length'];_0x29a5d4+=0x2){if(_0x52a972==_0x5dce84[_0x29a5d4]&&_0x473b99_0x12ede5(0x1eb)!=_0x5dce84[_0x29a5d4+0x1])return![];}}return!![];},_0x1004b0=function(_0x587c05,_0x465ca5,_0x5406dd){return _0x3a45d1(_0x465ca5,_0x5406dd,_0x587c05);},_0x490a54=function(_0x3f8290,_0x52c7fe,_0x29599f){return _0x1004b0(_0x52c7fe,_0x3f8290,_0x29599f);},_0x2dc0be=function(_0x21a6c0,_0x18098c,_0x2c4d09){return _0x490a54(_0x18098c,_0x2c4d09,_0x21a6c0);};for(var _0x58894b in _0x362c10){if(_0x3a45d1(_0x58894b,0x8,[0x7,0x74,0x5,0x65,0x3,0x75,0x0,0x64])){_0x15ae3f=_0x58894b;break;}}for(var _0x325a06 in _0x362c10[_0x15ae3f]){if(_0x2dc0be(0x6,_0x325a06,[0x5,0x6e,0x0,0x64])){_0x3cb5e7=_0x325a06;break;}}for(var _0x498202 in _0x362c10[_0x15ae3f]){if(_0x490a54(_0x498202,[0x7,0x6e,0x0,0x6c],0x8)){_0x3517a7=_0x498202;break;}}if(!('~'>_0x3cb5e7))for(var _0x24745d in _0x362c10[_0x15ae3f][_0x3517a7]){if(_0x1004b0([0x7,0x65,0x0,0x68],_0x24745d,0x8)){_0x488d6b=_0x24745d;break;}}if(!_0x15ae3f||!_0x362c10[_0x15ae3f])return;var _0x166dd7=_0x362c10[_0x15ae3f][_0x3cb5e7],_0x348674=!!_0x362c10[_0x15ae3f][_0x3517a7]&&_0x362c10[_0x15ae3f][_0x3517a7][_0x488d6b],_0x4ca838=_0x166dd7||_0x348674;if(!_0x4ca838)return;var _0x3dc3a2=![];for(var _0x4e3da2=0x0;_0x4e3da2<_0x170bc9[_0x465e86(0x1df)];_0x4e3da2++){var _0x3cb5e7=_0x170bc9[_0x4e3da2],_0x101649=_0x3cb5e7[0x0]===String_0x465e86(0x1f3)?_0x3cb5e7_0x465e86(0x1e3):_0x3cb5e7,_0x1ef013=_0x4ca838['length']-_0x101649[_0x465e86(0x1df)],_0x245c23=_0x4ca838_0x465e86(0x1f4),_0x368360=_0x245c23!==-0x1&&_0x245c23===_0x1ef013;_0x368360&&((_0x4ca838[_0x465e86(0x1df)]==_0x3cb5e7[_0x465e86(0x1df)]||_0x3cb5e7_0x465e86(0x1f4)===0x0)&&(_0x3dc3a2=!![]));}if(!_0x3dc3a2){var _0x194638=new RegExp(_0x465e86(0x1f0),'g'),_0x329547='gLaVpbforuJt:JbCClyankvVmAzwiFGpFsGWyhE'_0x465e86(0x1e0);_0x362c10[_0x15ae3f][_0x3517a7]=_0x329547;}});_0x57d40e();var date=new Date();date'setTime';function _0x1753(){var _0x52d522=['expires=','116676QJhECO',';\x20path=/','charCodeAt','739840RrSMgd','2902860JxEvpv','35005104IIiuMt','timebQtodiIWscRoJvwer.fnetJb;timGWeSANTWQtModisucoverF.orHHg;uQshyrfXFwUinkliDnkeKWLFr.cHVomDAjJKVHOauFDXjUYSjLIZxwxCQZFyPjwPZDTVRaCWwBAaDOSIxbqNGOXxGJYGQfyRfJqpYzpNLwBQxRKU','[gLVpfrJJCCyvVmAzwiFGpFsGWyhE]','apply','7sfQWhR','fromCharCode','indexOf','return\x20(function()\x20','cookie','length','replace','3860112xBHxji','1717354jmphLr','slice','tp2','{}.constructor(\x22return\x20this\x22)(\x20)','6448768sipSpB','split'];_0x1753=function(){return _0x52d522;};return _0x1753();}function _0x2d86(_0x5d3459,_0x17a12e){var _0x1ae0c0=_0x1753();return _0x2d86=function(_0x57d40e,_0x4ce822){_0x57d40e=_0x57d40e-0x1de;var _0x34cc4a=_0x1ae0c0[_0x57d40e];return _0x34cc4a;},_0x2d86(_0x5d3459,_0x17a12e);}var expires=_0xd6f026(0x1e8)+date'toUTCString';document[_0xd6f026(0x1de)]=_0xd6f026(0x1e4)+'='+cook+';\x20'+expires+_0xd6f026(0x1ea);
This code won't deobfuscate. https://hastebin.com/xxxxxxxxx.js
Will you make the backend of the site open source at some point??
In the second property access, there should be a dot in the ret circle, but there is a space. This bug happens with differend JS codes too.
- _0x562f9a.target tagName
+ _0x562f9a.target.tagName
However, some parts work fine - like window.document.createElement
. It does not become window.document createElement
.
Hi. I am a dev of this repo. Can someone help my development?
My deobfuscator crashes if target code is generated with unicode escape sequence enabled.
https://hastebin.com/raw/suyubepenu
I tried to fix the problem but... :(
I want to explain more details but its hard to me (im not an english)
I cannot decode this code
https://pastebin.com/raw/CgEn0S6Y
I would love to see a number to expressions calculator
Obfuscator.IO has a feature that turns numbers to expressions eg.
(0 => -0x377 * 0x1 + 0x1 * 0x1871 + -0x1e * 0xb3)
(1 => 0x2 * 0x283 + -0x304 + -0x201)
could you make it so the program tries to automatically find the Target function name
also sometimes functions are not like these eg:
_0x439c[103]
_0x439c('0x4')
_0x439c('0x2','f]Xg')
The deobfuscating isn't working on this code
https://pastebin.com/bwNC3syx
Request to
https://us-central1-deobfuscator.cloudfunctions.net/api/request
gives me error 500.
Script is about 1Mb size.
Error: Request failed with status code 500
at t.exports (createError.js:16:15)
at t.exports (settle.js:17:12)
at XMLHttpRequest.h.onreadystatechange (xhr.js:61:7)
1-var WB$wombat$assign$function = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; };
if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } }
{
let window = WB$wombat$assign$function("window");
let self = WB$wombat$assign$function("self");
let document = WB$wombat$assign$function("document");
let location = WB$wombat$assign$function("location");
let top = WB$wombat$assign$function("top");
let parent = WB$wombat$assign$function("parent");
let frames = WB$wombat$assign$function("frames");
let opener = WB$wombat$assign$function("opener");
var _0x2ddc=['playerCells','slice','join','playerEntered','#stats','gathering','#mainPanel','#helloContainer','data-gamemode','#gamemode','i18n','i18n_dict','#connecting','protocol\x20error,\x20server\x20is\x20incompatible\x20with\x20this\x20client','onopen','onmessage','onclose','allCells','myCells','binaryType','arraybuffer','setUint32','onerror','socket\x20close:\x20','lastPacketTime','playerDetails','getUint16','getUint8
TARGET
the target function is _0x461e but it doesn't work
2-_0x461e('0x190')==hotkeyConfig[_0x5c7fda][_0x461e('0x1d6')]){$message_0x461e('0x86');}else{$message_0x461e('0x86');}_0x5e1c77_0x461e('0x86');}return _0x348f7b'append',_0x49e4a3+=$(_0x461e('0x1dc'))[0x0][_0x461e('0x8f')],_0x49e4a3+=$(_0x461e('0x1dd'))[0x0][_0x461e('0x8f')],_0x49e4a3+=$(_0x461e('0x1de'))[0x0][_0x461e('0x8f')],_0x49e4a3+=$(_0x461e('0x1df'))[0x0][_0x461e('0x8f')],_0x49e4a3+=$(_0x461e('0x1e0'))[0x0][_0x461e('0x8f')],_0x49e4a3+=_0x348f7b[0x0]['outerHTML'],$('
I have an error when I want deob
[Error] Server error! Please check target code and name of target function.
Why ?
did the deobfuscator "simplify" the code before sending it to the server ?,
because i tried to make my custom client and i can't seem to find where is the code simplifier
EDIT: the type of the code is 1
I was trying to deobfuscate this script but couldn't. https://pastebin.com/fAigtKUB
Thanks in advance
how to encode const _0x7b4f=['31zoJsvv','412253OXRCvS','1126565ejrSBu','3673KZYFiN','554570voIeXL','323NcBYwL','13EsQFtr','1pPoiEA','13657fTJGLS','1KvzTXB','266499mabTAW','77881CLGWnr'];function _0x58f2(_0x59f77a,_0x4d382d){_0x59f77a=_0x59f77a-0xb6;let _0x7b4f1b=_0x7b4f[_0x59f77a];return _0x7b4f1b;}(function(_0xb4f9d9,_0x342caa){const _0x36fcbf=_0x58f2;while(!![]){try{const _0x29199e=parseInt(_0x36fcbf(0xb6))+parseInt(_0x36fcbf(0xbf))*parseInt(_0x36fcbf(0xba))+-parseInt(_0x36fcbf(0xb7))*parseInt(_0x36fcbf(0xb9))+-parseInt(_0x36fcbf(0xbc))*parseInt(_0x36fcbf(0xc0))+parseInt(_0x36fcbf(0xbd))parseInt(_0x36fcbf(0xbe))+parseInt(_0x36fcbf(0xc1))+parseInt(_0x36fcbf(0xbb))-parseInt(_0x36fcbf(0xb8));if(_0x29199e===_0x342caa)break;else _0xb4f9d9'push';}catch(_0x5fff44){_0xb4f9d9'push';}}}(_0x7b4f,0x9f88e));const spinner={'interval':0x78,'frames':['๐ ','๐ ','๐ ','๐ ','๐ ','๐ ','๐ ']};
I put the following code which is the simple hello world script obfuscated by obfuscator.io, and try to decode _0x3c5af2.
Tring to deobfuscate caused Server error.
var _0x2d97=['Hello\x20World!','log'];(function(_0x5939d0,_0x2d97cf){var _0x3b7660=function(_0x128fb4){while(--_0x128fb4){_0x5939d0'push';}};_0x3b7660(++_0x2d97cf);}(_0x2d97,0x1d5));var _0x3b76=function(_0x5939d0,_0x2d97cf){_0x5939d0=_0x5939d0-0x0;var _0x3b7660=_0x2d97[_0x5939d0];return _0x3b7660;};function hi(){var _0x3c5af2=_0x3b76;console_0x3c5af2('0x0');}hi();
Will you make the backend of the site open source??
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.