Git Product home page Git Product logo

Comments (15)

U039b avatar U039b commented on June 23, 2024

Hi,
Thank you. I will investigate ;-) Could you please send me the APK of fr.playsoft.lefigarov3?

from exodus-standalone.

HugoPoi avatar HugoPoi commented on June 23, 2024

@U039b voila https://home.hugopoi.net/lufi/r/gSsrTn5m8D#5XZdy2Ht0tUriz5TA8GR7NtBp32wOVBkeimFC3okitw=

from exodus-standalone.

HugoPoi avatar HugoPoi commented on June 23, 2024

I investigate a little with enabling DEBUG log.

DEBUG:root:135 trackers signatures loaded
=== Information
- APK path: fr.playsoft.lefigarov3.apk
- APK sum: 51532dd165e38e2d0ec11dc119b152bcd7808d9feb09f15c7ed4542987776e67
- App version: 5.1.3
- App version code: 94
- App UID: FABCC978B5CEFF042A9A462A3922ECA956B2420B
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Skipping padding bytes!
DEBUG:androguard.runtime:Out of range dimension unit index for 65038.00399593472: 9
DEBUG:androguard.runtime:Out of range dimension unit index for 65038.00399593472: 10
DEBUG:androguard.runtime:Out of range dimension unit index for 32051.19728172544: 10
DEBUG:androguard.runtime:Out of range dimension unit index for 0.488437427482368: 8
DEBUG:androguard.runtime:Out of range dimension unit index for 8324864.0: 12
DEBUG:androguard.runtime:Out of range dimension unit index for 8324864.0: 12
DEBUG:androguard.runtime:Out of range dimension unit index for 32051.19728172544: 10
DEBUG:androguard.runtime:Out of range dimension unit index for 0.488437427482368: 8
DEBUG:androguard.runtime:Out of range dimension unit index for 8324864.0: 13
DEBUG:androguard.runtime:Out of range dimension unit index for 0.488437427482368: 8
DEBUG:androguard.runtime:Out of range dimension unit index for 4082892.0: 13
DEBUG:androguard.runtime:Out of range dimension unit index for 4060610.0: 15
DEBUG:androguard.runtime:Out of range dimension unit index for 32133.11916175872: 12
DEBUG:androguard.runtime:Out of range dimension unit index for 0.992401269305472: 10
DEBUG:androguard.runtime:Out of range dimension unit index for 254.0547097690112: 15
- App name: Le Figaro
- App package: fr.playsoft.lefigarov3
- App permissions: 10
    - android.permission.INTERNET
    - android.permission.ACCESS_NETWORK_STATE
    - android.permission.WRITE_EXTERNAL_STORAGE
    - android.permission.RECEIVE_BOOT_COMPLETED
    - android.permission.VIBRATE
    - com.google.android.c2dm.permission.RECEIVE
    - com.android.vending.BILLING
    - android.permission.WAKE_LOCK
    - fr.playsoft.lefigarov3.permission.C2D_MESSAGE
    - android.permission.ACCESS_WIFI_STATE
- App libraries: 0
- Certificates: 1
    - Issuer: countryName=FR, stateOrProvinceName=Ile de France, localityName=Paris, organizationName=Le Figaro, organizationalUnitName=LeFigaro Nouveaux médias, commonName=Francois Rannou 
Subject: countryName=FR, stateOrProvinceName=Ile de France, localityName=Paris, organizationName=Le Figaro, organizationalUnitName=LeFigaro Nouveaux médias, commonName=Francois Rannou 
Fingerprint: e9cdbbbd1d6a307563368c572e2efe2e106dbf4f 
Serial: 1317228289
DEBUG:root:2 classes found in fr.playsoft.lefigarov3.apk
DEBUG:root:0 trackers detected in fr.playsoft.lefigarov3.apk
=== Found trackers: 0

Trackers list is loaded correctly.

from exodus-standalone.

U039b avatar U039b commented on June 23, 2024

Hi!
That's really strange.
Could you please give me the output of these 2 commands once you have activated the virtual env:

dexdump
pip freeze

from exodus-standalone.

HugoPoi avatar HugoPoi commented on June 23, 2024

dexdump

dexdump: invalid option -- 'v'
dexdump: no file specified
Copyright (C) 2007 The Android Open Source Project

dexdump: [-c] [-d] [-f] [-h] [-i] [-l layout] [-m] [-t tempfile] dexfile...

 -c : verify checksum and exit
 -d : disassemble code sections
 -f : display summary information from file header
 -h : display file header details
 -i : ignore checksum failures
 -l : output layout, either 'plain' or 'xml'
 -m : dump register maps (and nothing else)
 -t : temp file name (defaults to /sdcard/dex-temp-*)

pip freeze

androguard==3.1.0
asn1crypto==0.24.0
backcall==0.1.0
beautifulsoup4==4.6.0
certifi==2018.1.18
cffi==1.11.5
chardet==3.0.4
cryptography==2.2.2
decorator==4.3.0
dhash==1.3
exodus-core==1.0.7 # I have manually edit the requirements.txt and downgrade exodus-core to 1.0.7 but same issue
future==0.16.0
idna==2.6
ipython==6.3.1
ipython-genutils==0.2.0
jedi==0.12.0
jellyfish==0.5.6
networkx==2.1
parso==0.2.0
pexpect==4.5.0
pickleshare==0.7.4
Pillow==5.0.0
pkg-resources==0.0.0
prompt-toolkit==1.0.15
ptyprocess==0.5.2
pyasn1==0.4.2
pycparser==2.18
Pygments==2.2.0
requests==2.18.4
simplegeneric==0.8.1
six==1.11.0
traitlets==4.3.2
urllib3==1.22
wcwidth==0.1.7

apt show dexdump

Package: dexdump
Version: 6.0.1+r16-4
Priority: optional
Section: universe/devel
Source: android-platform-dalvik
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Android tools Maintainer <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 57,3 kB
Depends: android-libdex, libc6 (>= 2.14)
Homepage: https://android.googlesource.com/platform/dalvik
Download-Size: 16,6 kB
APT-Manual-Installed: yes
APT-Sources: http://mirrors.ircam.fr/pub/ubuntu/archive xenial/universe amd64 Packages
Description: Tool to display information about Android .dex files
 The "dexdump" tool is intended to mimic "objdump". When possible, use similar
 command-line arguments.

from exodus-standalone.

U039b avatar U039b commented on June 23, 2024

Thank you. Please, try with

exodus-core==1.0.14

https://github.com/Exodus-Privacy/exodus-core/releases/tag/v1.0.14

from exodus-standalone.

U039b avatar U039b commented on June 23, 2024

I'm working on exodus-standalone today. So, do not hesitate to give me your feedbacks/issues/etc.

from exodus-standalone.

HugoPoi avatar HugoPoi commented on June 23, 2024

Sorry for respond late, I have upgrade exodus-core to 1.0.14 still same issue, 0 trackers found. I have pretty much the same output log than with version 1.0.7.

I will dig into the code this afternoon (gmt+2).

from exodus-standalone.

HugoPoi avatar HugoPoi commented on June 23, 2024

Found the issue my dexdump failed to parse classes

Processing 'fr.playsoft.lefigarov3/classes2.dex'...
dexdump: libdex/DexSwapVerify.cpp:382: bool swapMap(CheckState*, DexMapList*): Assertion `((((((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a))(-((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a))(~((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a)) 1 << ((sizeof(typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a)) * 8) - 1)))) - 1)) <= ((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a))0)) && (((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))(-((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))(~((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b)) 1 << ((sizeof(typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b)) * 8) - 1)))) - 1)) <= ((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))0))) || (((((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a))(-((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a))(~((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a)) 1 << ((sizeof(typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a)) * 8) - 1)))) - 1)) > ((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a))0))) && (((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))(-((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))(~((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b)) 1 << ((sizeof(typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b)) * 8) - 1)))) - 1)) > ((typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))0)))) && (sizeof(typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__a)) == sizeof(typeof(OPAQUE_SAFE_IOP_PREFIX_VARIABLE__b))))' failed.
Abandon

The amd64 dexdump package of ubuntu 16.04 https://packages.ubuntu.com/xenial/dexdump have broken dexdump.
Install the i386 version fix the problem. (apt install dexdump:i386)
May be related to : Debian package have weird note saying the amd64 is broken https://packages.debian.org/stretch/dexdump but is not ...

 Note: dexdump on amd64 will not work until the upstream fixes it. 

I think is good idea to implement a detection of the crash error of dexdump in exodus-core.

from exodus-standalone.

U039b avatar U039b commented on June 23, 2024

Thank you for your investigation. I'll try to detect this kind of crash directly in exodus-core.

from exodus-standalone.

U039b avatar U039b commented on June 23, 2024

Could you give the exit code of dexdump when it crashes?

from exodus-standalone.

HugoPoi avatar HugoPoi commented on June 23, 2024

Seems to be 134

from exodus-standalone.

U039b avatar U039b commented on June 23, 2024

Thank you.

from exodus-standalone.

magicj3lly avatar magicj3lly commented on June 23, 2024

@U039b - The dexdump that comes packaged with Android SDK does not have this issue. I verified it. I had the SDK for x86_64 and used the tool straight out of the box. For the APK i was testing, the trackers are also detected with this. /e/

from exodus-standalone.

 avatar commented on June 23, 2024

@magicj3lly Thanks for the hint, the Android SKD version worked fine for me. The version installed via apt-get from ubuntu showed the same error.

from exodus-standalone.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.