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
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.
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.
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.
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)
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
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```
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.
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
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?
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.