python_pin's People
Forkers
chubbymaggie wu860 sucof insecuritea cigam idkwim kosmonit geek-li talanor qilewuqiong imanadib felipebetancur nsxz levinjimmy pxx199181 manfeel r1ceplus wflk amesianx fatgrass olivierh59500 nmtrmail brownbelt fuzzamos rofaidag jeffli678 blinzika philatchina naveenselvan waterdemo ririripley leepoly ylkcypython_pin's Issues
Issue executing examples/strace.py in Ubuntu 14.04 32-bit
When trying to execute examples/strace.py in Ubuntu 14.04 32-bit I get the following error:
symexec@ubuntu:~/pin/source/tools/Python_Pin$ ../../../pin -t obj-ia32/Python_Pin.so -m examples/strace.py -- /bin/ls
Traceback (most recent call last):
File "examples/strace.py", line 4, in
unistd = open("/usr/include/x86_64-linux-gnu/asm/unistd_64.h").read().split("\n")
IOError: [Errno 2] No such file or directory: '/usr/include/x86_64-linux-gnu/asm/unistd_64.h'
Issue seems to be due to the hardcoded path to unistd_64.h
I got around this error by replacing the path to unistd to "/usr/include/i386-linux-gnu/asm/unistd_32.h"
Thanks.
INS_InsertCall for Reads
student@ubuntu:~/Desktop/pin_dir/source/tools/Python_Pin$ sudo bash ../../../pin.sh -t obj-intel64/Python_Pin.so -m examples/uaf_finder.py -- /bin/cat ../../../../input.txt
E:INS.cpp:131: Cannot use IARG_MEMORYWRITE_EA for ins without memory write ( 20 0x00007f37d87cba8f mov rax, qword ptr [rip+0x21e3da])
It seems that line 130 in INS.cpp only account for using the INS_InsertCall with a write operation, when the documentation shows that it can be used with reads as well.\
Thanks for all your work.
Failed Build 32 Bit Ubuntu
Downloaded the PIN tools from intel website and attempted to build with default 32 bit ubuntu image. Get the following compilation error:
cc -DBIGARRAY_MULTIPLIER=1 -Wall -Werror -Wno-unknown-pragmas -fno-stack-protector -DTARGET_IA32 -DHOST_IA32 -DTARGET_LINUX -I../../../source/include/pin -I../../../source/include/pin/gen -I../../../extras/components/include -I../../../extras/xed2-ia32/include -I../../../source/tools/InstLib -O3 -fomit-frame-pointer -fno-strict-aliasing -c -o obj-ia32/INS.o INS.cpp -lpython2.7 -I/usr/include/python2.7 -rdynamic
In file included from /usr/include/signal.h:352:0,
from /usr/include/python2.7/pyfpe.h:129,
from /usr/include/python2.7/Python.h:156,
from INS.cpp:1:
INS.cpp: In function ‘PyObject* Python_INS_InsertCall(PyObject_, PyObject_)’:
INS.cpp:105:29: error: reference to ‘REG_EAX’ is ambiguous
IARG_REG_VALUE, REG_EAX,
^
/usr/include/i386-linux-gnu/sys/ucontext.h:180:3: note: candidates are: REG_EAX
REG_EAX,
^
../../../source/include/pin/gen/reg_ia32.PH:92:5: note: LEVEL_BASE::REG REG_EAX
REG_EAX,
^
INS.cpp:106:29: error: reference to ‘REG_EBX’ is ambiguous
IARG_REG_VALUE, REG_EBX,
.........
make: *** [obj-ia32/INS.o] Error 1
Install on base 64 ubuntu image works fine.
Trouble Importing Z3 in Example
On a 32 and 64 bit Ubuntu images, I am successfully able to import z3 like in the following examples
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from z3 import *
>>>
However, when I try to use z3 in a sample example file on both 64 and 32 bit images, I get the following import error.
student@ubuntu:~/Desktop/pin_dir/source/tools/Python_Pin$ sudo bash ../../../pin.sh -t obj-ia32/Python_Pin.so -m examples/call_chain.py -- /bin/echo "hello"
Traceback (most recent call last):
File "examples/call_chain.py", line 2, in
from z3 import *
File "/usr/lib/python2.7/dist-packages/z3.py", line 43, in
from z3core import *
File "/usr/lib/python2.7/dist-packages/z3core.py", line 3, in
import ctypes
File "/usr/lib/python2.7/ctypes/init.py", line 10, in
from _ctypes import Union, Structure, Array
ImportError: /usr/lib/python2.7/lib-dynload/_ctypes.i386-linux-gnu.so: undefined symbol: PyFloat_Type
hello
Would there be some possible fix for this?
use python-pin error
I try convert the simplest pintools: inscount0.cpp to python. But It has a segment error:
C: Tool (or Pin) caused signal 11 at PC 0x7f946f1dd8b9
I don't know what's wrong with me.
Here is the python source I write:
import sys, pin
info = file("count.out", "w")
count = 0
def docount(ins_info):
global count
count = count + 1
def instruction(ins):
pin.INS_InsertCall(pin.IPOINT_BEFORE, ins, docount)
def fini():
global count
info.writelines(str(count))
info.close()
pin.INS_AddInstrumentFunction(instruction, 0)
pin.AddFiniFunction(fini, 0)
feature request: BBL_InsertCall()
Hi,
Can I request to have BBL_InsertCall() instrumentation feature? I find it very useful as it reduces instrumentation points.
thanks
-sanjay
Use python2.7-config in makefile.rules
This currently uses hardcoded paths, can you update to build/link using the output of python2.7-config --cflags and python2.7-config --ldflags.
make failing with errors, require urgent help
make objects
make[1]: Entering directory '/home/ubuntu/Python_Pin'
make[1]: Nothing to be done for 'objects'.
make[1]: Leaving directory '/home/ubuntu/Python_Pin'
make libs
make[1]: Entering directory '/home/ubuntu/Python_Pin'
make[1]: Nothing to be done for 'libs'.
make[1]: Leaving directory '/home/ubuntu/Python_Pin'
make dlls
make[1]: Entering directory '/home/ubuntu/Python_Pin'
make[1]: Nothing to be done for 'dlls'.
make[1]: Leaving directory '/home/ubuntu/Python_Pin'
make apps
make[1]: Entering directory '/home/ubuntu/Python_Pin'
make[1]: Nothing to be done for 'apps'.
make[1]: Leaving directory '/home/ubuntu/Python_Pin'
make tools
make[1]: Entering directory '/home/ubuntu/Python_Pin'
g++ -lpython2.7 -I/usr/include/python2.7 -rdynamic -Wall -Werror -Wno-unknown-pragmas -D__PIN__=1 -DPIN_CRT=1 -fno-stack-protector -fno-exceptions -funwind-tables -fasynchronous-unwind-tables -fno-rtti -DTARGET_IA32E -DHOST_IA32E -fPIC -DTARGET_LINUX -fabi-version=2 -I/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/include/pin -I/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/include/pin/gen -isystem /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/stlport/include -isystem /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/libstdc++/include -isystem /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/crt/include -isystem /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/crt/include/arch-x86_64 -isystem /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/crt/include/kernel/uapi -isystem /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/crt/include/kernel/uapi/asm-x86 -I/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/components/include -I/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/xed-intel64/include/xed -I/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/tools/Utils -I/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/tools/InstLib -O3 -fomit-frame-pointer -fno-strict-aliasing -c -o obj-intel64/Python_Pin.o Python_Pin.cpp
In file included from /usr/include/python2.7/Python.h:47:0,
from Python_Pin.cpp:1:
/usr/include/crypt.h:33:6: error: expected initializer before ‘__THROW’
__THROW __nonnull ((1, 2));
^~~~~~~
/usr/include/crypt.h:36:40: error: expected initializer before ‘__THROW’
extern void setkey (const char *__key) __THROW __nonnull ((1));
^~~~~~~
/usr/include/crypt.h:41:6: error: expected initializer before ‘__THROW’
__THROW __nonnull ((1));
^~~~~~~
/usr/include/crypt.h:62:6: error: expected initializer before ‘__THROW’
__THROW __nonnull ((1, 2, 3));
^~~~~~~
/usr/include/crypt.h:66:6: error: expected initializer before ‘__THROW’
__THROW __nonnull ((1, 2));
^~~~~~~
/usr/include/crypt.h:70:6: error: expected initializer before ‘__THROW’
__THROW __nonnull ((1, 3));
^~~~~~~
Python_Pin.cpp:143:6: error: ‘string’ was not declared in this scope
KNOB<string> KnobPythonModule(KNOB_MODE_WRITEONCE, "pintool", "m", "", "the python pintool to import");
^~~~~~
Python_Pin.cpp:143:6: note: suggested alternative:
In file included from /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/stlport/include/stl/_string.h:42:0,
from /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/stlport/include/string:29,
from /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/include/pin/level_base.PLH:64,
from /home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/include/pin/pin.H:20,
from Python_Pin.cpp:3:
/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/extras/stlport/include/stl/_string_fwd.h:40:65: note: ‘std::string’
typedef basic_string<char, char_traits<char>, allocator<char> > string;
^~~~~~
Python_Pin.cpp:143:12: error: template argument 1 is invalid
KNOB<string> KnobPythonModule(KNOB_MODE_WRITEONCE, "pintool", "m", "", "the python pintool to import");
^
Python_Pin.cpp:143:102: error: expression list treated as compound expression in initializer [-fpermissive]
KNOB<string> KnobPythonModule(KNOB_MODE_WRITEONCE, "pintool", "m", "", "the python pintool to import");
^
Python_Pin.cpp:143:102: error: left operand of comma operator has no effect [-Werror=unused-value]
Python_Pin.cpp:143:102: error: right operand of comma operator has no effect [-Werror=unused-value]
Python_Pin.cpp:143:102: error: right operand of comma operator has no effect [-Werror=unused-value]
Python_Pin.cpp:143:102: error: right operand of comma operator has no effect [-Werror=unused-value]
Python_Pin.cpp:143:102: error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
Python_Pin.cpp: In function ‘int main(int, char**)’:
Python_Pin.cpp:211:63: error: ‘IARG_REG_NAT_VALUE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_REG_NAT_VALUE", IARG_REG_NAT_VALUE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:211:63: note: suggested alternative: ‘HAVE_SEM_GETVALUE’
PyModule_AddIntConstant(pin_module, "IARG_REG_NAT_VALUE", IARG_REG_NAT_VALUE);
^~~~~~~~~~~~~~~~~~
HAVE_SEM_GETVALUE
Python_Pin.cpp:212:72: error: ‘IARG_REG_OUTPUT_FRAME_VALUE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_REG_OUTPUT_FRAME_VALUE", IARG_REG_OUTPUT_FRAME_VALUE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:213:76: error: ‘IARG_REG_OUTPUT_FRAME_REFERENCE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_REG_OUTPUT_FRAME_REFERENCE", IARG_REG_OUTPUT_FRAME_REFERENCE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:216:62: error: ‘IARG_SYSCALL_ARG0’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG0", IARG_SYSCALL_ARG0);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:216:62: note: suggested alternative: ‘XED_ICLASS_SYSCALL_AMD’
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG0", IARG_SYSCALL_ARG0);
^~~~~~~~~~~~~~~~~
XED_ICLASS_SYSCALL_AMD
Python_Pin.cpp:217:65: error: ‘IARG_SYSCALL_ARGBASE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARGBASE", IARG_SYSCALL_ARGBASE);
^~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:218:62: error: ‘IARG_SYSCALL_ARG1’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG1", IARG_SYSCALL_ARG1);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:218:62: note: suggested alternative: ‘XED_ICLASS_SYSCALL_AMD’
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG1", IARG_SYSCALL_ARG1);
^~~~~~~~~~~~~~~~~
XED_ICLASS_SYSCALL_AMD
Python_Pin.cpp:219:62: error: ‘IARG_SYSCALL_ARG2’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG2", IARG_SYSCALL_ARG2);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:219:62: note: suggested alternative: ‘XED_ICLASS_SYSCALL_AMD’
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG2", IARG_SYSCALL_ARG2);
^~~~~~~~~~~~~~~~~
XED_ICLASS_SYSCALL_AMD
Python_Pin.cpp:220:62: error: ‘IARG_SYSCALL_ARG3’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG3", IARG_SYSCALL_ARG3);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:220:62: note: suggested alternative: ‘XED_ICLASS_SYSCALL_AMD’
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG3", IARG_SYSCALL_ARG3);
^~~~~~~~~~~~~~~~~
XED_ICLASS_SYSCALL_AMD
Python_Pin.cpp:221:62: error: ‘IARG_SYSCALL_ARG4’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG4", IARG_SYSCALL_ARG4);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:221:62: note: suggested alternative: ‘XED_ICLASS_SYSCALL_AMD’
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG4", IARG_SYSCALL_ARG4);
^~~~~~~~~~~~~~~~~
XED_ICLASS_SYSCALL_AMD
Python_Pin.cpp:222:62: error: ‘IARG_SYSCALL_ARG5’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG5", IARG_SYSCALL_ARG5);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:222:62: note: suggested alternative: ‘XED_ICLASS_SYSCALL_AMD’
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARG5", IARG_SYSCALL_ARG5);
^~~~~~~~~~~~~~~~~
XED_ICLASS_SYSCALL_AMD
Python_Pin.cpp:223:65: error: ‘IARG_SYSCALL_ARGLAST’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_SYSCALL_ARGLAST", IARG_SYSCALL_ARGLAST);
^~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:224:59: error: ‘IARG_G_RESULT0’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_RESULT0", IARG_G_RESULT0);
^~~~~~~~~~~~~~
Python_Pin.cpp:225:59: error: ‘IARG_G_RETBASE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_RETBASE", IARG_G_RETBASE);
^~~~~~~~~~~~~~
Python_Pin.cpp:226:62: error: ‘IARG_G_RESULTLAST’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_RESULTLAST", IARG_G_RESULTLAST);
^~~~~~~~~~~~~~~~~
Python_Pin.cpp:227:63: error: ‘IARG_G_ARG0_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG0_CALLEE", IARG_G_ARG0_CALLEE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:228:66: error: ‘IARG_G_ARGBASE_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARGBASE_CALLEE", IARG_G_ARGBASE_CALLEE);
^~~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:229:63: error: ‘IARG_G_ARG1_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG1_CALLEE", IARG_G_ARG1_CALLEE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:230:63: error: ‘IARG_G_ARG2_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG2_CALLEE", IARG_G_ARG2_CALLEE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:231:63: error: ‘IARG_G_ARG3_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG3_CALLEE", IARG_G_ARG3_CALLEE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:232:63: error: ‘IARG_G_ARG4_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG4_CALLEE", IARG_G_ARG4_CALLEE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:233:63: error: ‘IARG_G_ARG5_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG5_CALLEE", IARG_G_ARG5_CALLEE);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:234:66: error: ‘IARG_G_ARGLAST_CALLEE’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARGLAST_CALLEE", IARG_G_ARGLAST_CALLEE);
^~~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:235:63: error: ‘IARG_G_ARG0_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG0_CALLER", IARG_G_ARG0_CALLER);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:236:66: error: ‘IARG_G_ARGBASE_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARGBASE_CALLER", IARG_G_ARGBASE_CALLER);
^~~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:237:63: error: ‘IARG_G_ARG1_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG1_CALLER", IARG_G_ARG1_CALLER);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:238:63: error: ‘IARG_G_ARG2_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG2_CALLER", IARG_G_ARG2_CALLER);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:239:63: error: ‘IARG_G_ARG3_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG3_CALLER", IARG_G_ARG3_CALLER);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:240:63: error: ‘IARG_G_ARG4_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG4_CALLER", IARG_G_ARG4_CALLER);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:241:63: error: ‘IARG_G_ARG5_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARG5_CALLER", IARG_G_ARG5_CALLER);
^~~~~~~~~~~~~~~~~~
Python_Pin.cpp:242:66: error: ‘IARG_G_ARGLAST_CALLER’ was not declared in this scope
PyModule_AddIntConstant(pin_module, "IARG_G_ARGLAST_CALLER", IARG_G_ARGLAST_CALLER);
^~~~~~~~~~~~~~~~~~~~~
Python_Pin.cpp:254:45: error: request for member ‘Value’ in ‘KnobPythonModule’, which is of non-class type ‘int’
const char* filename = KnobPythonModule.Value().c_str();
^~~~~
cc1plus: all warnings being treated as errors
makefile.rules:94: recipe for target 'obj-intel64/Python_Pin.o' failed
make[1]: *** [obj-intel64/Python_Pin.o] Error 1
make[1]: Leaving directory '/home/ubuntu/Python_Pin'
/home/ubuntu/pin-3.10-97971-gc5e41af74-gcc-linux/source/tools/Config/makefile.config:331: recipe for target 'all' failed
make: *** [all] Error 2```
Strange output from python_pin tool img_load.py
Hi,
I just started using Python_Pin on Ubuntu 14.04 (gcc version 4.8.4) with latest Pin 2.14 release. While playing with given examples, I used img_load.py with evince and I got the following response:
------------------
> pin -t obj-intel64/Python_Pin.so -m examples/img_loads.py -- /usr/bin/evince
E: Could not determine os release
------------------
I accept that I did not dig further to find a probable cause of this and rather thought of asking here. So, is this response coming from Pintool itself or it is something to do with python_pin?
Thanks
-sanjay
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.