Giter Site home page Giter Site logo

autodecrypt's People

Contributors

dependabot[bot] avatar matteyeux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autodecrypt's Issues

13.4.1 BootLoader - iBSS / iBEC - Segmentation Fault 11

kairos ./iBSS.13.4.1.dec ibss.13.4.1.pat
[+] Patching ./iBSS.13.4.1.dec
[+] Patching out RSA signature check...
[+] Found IMG4 string at 0x2c66d
[+] Found IMG4 xref at 0xf0ec
[+] Found beginning of _image4_get_partial at 0xf07c
[+] Found xref to _image4_get_partial at 0x10694
[+] Found start of sub_1803905c8
[+] Found ADR X2, 0x1803b30ac at 0x30f2c
[+] Call to 0x7ffe7fc80000
Segmentation fault: 11

Kyles-MacBook-Air:ipad 13.1 kyletill$ kairos ./iBEC.13.4.1.dec ibec.13.4.1.pat.im4p
[+] Patching ./iBEC.13.4.1.dec
[+] Does have kernel load
[+] Enabling kernel debug...
[+] Found debug-enabled string at 0x47a2a
[+] Found debug-enabled xref at 0x11634
[+] Found second bl after debug-enabled xref at 0x11648
[+] Wrote MOVZ X0, #1 to 0x870011648
[+] Enabled kernel debug
[+] Patching out RSA signature check...
[+] Found IMG4 string at 0x478e5
[+] Found IMG4 xref at 0xf464
[+] Found beginning of _image4_get_partial at 0xf3f4
[+] Found xref to _image4_get_partial at 0x11374
[+] Found start of sub_870011234
[+] Found ADR X2, 0x87005369b at 0x4a510
[+] Call to 0xfffffff790000000
Segmentation fault: 11

This doesn't happen with other boot loaders such as 13.1

Test 13.1

kairos ./ibec.13.1.dec ibec.del
[+] Patching ./ibec.pat
[+] Does have kernel load
[+] Enabling kernel debug...
[+] Found debug-enabled string at 0x4a1c8
[+] Found debug-enabled xref at 0x1202c
[+] Found second bl after debug-enabled xref at 0x12084
[+] Wrote MOVZ X0, #1 to 0x870012084
[+] Enabled kernel debug
[+] Patching out RSA signature check...
[+] Found IMG4 string at 0x4a083
[+] Found IMG4 xref at 0xfc7c
[+] Found beginning of _image4_get_partial at 0xfbf0
[+] Found xref to _image4_get_partial at 0x10af4
[+] Found start of sub_8700108d4
[+] Found ADR X2, 0x87004b848 at 0x10c34
[+] Call to 0xff1c
[+] RET found for sub_87000ff1c at 0x1055c
[+] Did MOV r0, #0 and RET
[+] Wrote patched image to ibec.del

############

Seems to be replicated on two different Macs running Mojave and Catalina.

Specifics are iPad6,11 J71tap 13.4.1 iBSS and iBEC
Keys aren't on the wiki so here they are.

iBSS = Decrypting with s8003si GID key.
eb3e08750649eb98ca95d92878bac99b4d117078a1e06514cf8a8342366d2cae2b372acd34283968302c6cf299c3818d

iBEC = Decrypting with s8003si GID key.
f7a10fada9b3dae80afbc53450551686abbaf5935a82eb2cdb5495d8799989e3319a2f90a0cc893a61cad744d53a8931

SSL Certificate Error

When I attempt to run the command ./autodecrypt.py -f iBSS.d11.RELEASE.im4p -d iPhone9,2 -i 11.3.1, or any other command, the tools fails and produces the following error:

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1317, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 966, in send
    self.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 1414, in connect
    server_hostname=server_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 423, in wrap_socket
    session=session
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 870, in _create
    self.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", line 1139, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "autodecrypt.py", line 98, in <module>
    build = scrapkeys.version_or_build(device, ios_version, build)
  File "./scrapkeys.py", line 47, in version_or_build
    json_file = urlopen("https://api.ipsw.me/v4/device/" + device)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 543, in _open
    '_open', req)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 503, in _call_chain
    result = func(*args)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1360, in https_open
    context=self._context, check_hostname=self._check_hostname)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)>```

Unable to decrypt applelogo im4p

As the issue title would suggest, I'm trying to decrypt an im4p but I get this traceback:

bash-3.2$ autodecrypt -f applelogo  -d iPhone12,1 -i 14.7 -b 18G69
[i] downloading applelogo@1792~iphone.im4p
Traceback (most recent call last):
  File "/opt/homebrew/bin/autodecrypt", line 8, in <module>
    sys.exit(main())
  File "/opt/homebrew/lib/python3.8/site-packages/autodecrypt/main.py", line 90, in main
    magic, image_type = decrypt_img.get_image_type(img_file)
TypeError: cannot unpack non-iterable NoneType object

foreman api keys down

C:\Users\BH11040\Downloads\autodecrypt-master>autodecrypt -f iBSS -i 10.3.3 -d iPhone6,2 [w] could not get OTA url, trying with IPSW url [i] downloading iBSS.iphone6.RELEASE.im4p [i] image : ibss [i] grabbing keys for iPhone6,2/14G60 [x] iv : f2aa35f6e27c409fd57e9b711f416cfe [x] key : 599d9b18bc51d93f2385fa4e83539a2eec955fce5f4ae960b252583fcbebfe75 [i] decrypting iBSS.iphone6.RELEASE.im4p to iBSS.iphone6.RELEASE.bin... [x] done

when adding foreman api keys i got this :

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='foreman-public.sudosecuritygroup.com', port=443): Max retries exceeded with url: /api/find/combo/iPhone6,2/16H62 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000025001554790>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

Issues running program on linux

Sorry for bothering you, but when I was trying to use this program to decrypt the rootfs dmg of an iOS 16.3 image autodecrypt shot this error back at me.

│ /usr/lib/python3.11/site-packages/requests/models.py:971 in json                    │
│                                                                                     │
│    968 │   │   │   │   │   raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)       │
│    969 │   │                                                                        │
│    970 │   │   try:                                                                 │
│ ❱  971 │   │   │   return complexjson.loads(self.text, **kwargs)                    │
│    972 │   │   except JSONDecodeError as e:                                         │
│    973 │   │   │   # Catch JSON-related errors and raise as requests.JSONDecodeErro │
│    974 │   │   │   # This aliases json.JSONDecodeError and simplejson.JSONDecodeErr │
│                                                                                     │
│ /usr/lib64/python3.11/json/__init__.py:346 in loads                                 │
│                                                                                     │
│   343 │   if (cls is None and object_hook is None and                               │
│   344 │   │   │   parse_int is None and parse_float is None and                     │
│   345 │   │   │   parse_constant is None and object_pairs_hook is None and not kw): │
│ ❱ 346 │   │   return _default_decoder.decode(s)                                     │
│   347 │   if cls is None:                                                           │
│   348 │   │   cls = JSONDecoder                                                     │
│   349 │   if object_hook is not None:                                               │
│                                                                                     │
│ /usr/lib64/python3.11/json/decoder.py:337 in decode                                 │
│                                                                                     │
│   334 │   │   containing a JSON document).                                          │
│   335 │   │                                                                         │
│   336 │   │   """                                                                   │
│ ❱ 337 │   │   obj, end = self.raw_decode(s, idx=_w(s, 0).end())                     │
│   338 │   │   end = _w(s, end).end()                                                │
│   339 │   │   if end != len(s):                                                     │
│   340 │   │   │   raise JSONDecodeError("Extra data", s, end)                       │
│                                                                                     │
│ /usr/lib64/python3.11/json/decoder.py:355 in raw_decode                             │
│                                                                                     │
│   352 │   │   try:                                                                  │
│   353 │   │   │   obj, end = self.scan_once(s, idx)                                 │
│   354 │   │   except StopIteration as err:                                          │
│ ❱ 355 │   │   │   raise JSONDecodeError("Expecting value", s, err.value) from None  │
│   356 │   │   return obj, end                                                       │
│   357                                                                               │
╰─────────────────────────────────────────────────────────────────────────────────────╯
JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

╭───────────────────────── Traceback (most recent call last) ─────────────────────────╮
│ /home/fujiwara/.local/bin/autodecrypt:5 in <module>                                 │
│                                                                                     │
│   2 # -*- coding: utf-8 -*-                                                         │
│   3 import re                                                                       │
│   4 import sys                                                                      │
│ ❱ 5 from autodecrypt.main import app                                                │
│   6 if __name__ == '__main__':                                                      │
│   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])            │
│   8 │   sys.exit(app())                                                             │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/autodecrypt/main.py:134 in       │
│ <module>                                                                            │
│                                                                                     │
│   131 │   return 0                                                                  │
│   132                                                                               │
│   133                                                                               │
│ ❱ 134 app = typer.run(main)                                                         │
│   135                                                                               │
│   136 # if __name__ == "__main__":                                                  │
│   137 #    typer.run(main)                                                          │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/typer/main.py:895 in run         │
│                                                                                     │
│   892 def run(function: Callable[..., Any]) -> Any:                                 │
│   893 │   app = Typer()                                                             │
│   894 │   app.command()(function)                                                   │
│ ❱ 895 │   app()                                                                     │
│   896                                                                               │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/typer/main.py:214 in __call__    │
│                                                                                     │
│   211 │   │   )                                                                     │
│   212 │                                                                             │
│   213 │   def __call__(self, *args: Any, **kwargs: Any) -> Any:                     │
│ ❱ 214 │   │   return get_command(self)(*args, **kwargs)                             │
│   215                                                                               │
│   216                                                                               │
│   217 def get_group(typer_instance: Typer) -> click.Command:                        │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/click/core.py:1130 in __call__   │
│                                                                                     │
│   1127 │                                                                            │
│   1128 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:              │
│   1129 │   │   """Alias for :meth:`main`."""                                        │
│ ❱ 1130 │   │   return self.main(*args, **kwargs)                                    │
│   1131                                                                              │
│   1132                                                                              │
│   1133 class Command(BaseCommand):                                                  │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/click/core.py:1055 in main       │
│                                                                                     │
│   1052 │   │   try:                                                                 │
│   1053 │   │   │   try:                                                             │
│   1054 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:     │
│ ❱ 1055 │   │   │   │   │   rv = self.invoke(ctx)                                    │
│   1056 │   │   │   │   │   if not standalone_mode:                                  │
│   1057 │   │   │   │   │   │   return rv                                            │
│   1058 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                  │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/click/core.py:1404 in invoke     │
│                                                                                     │
│   1401 │   │   │   echo(style(message, fg="red"), err=True)                         │
│   1402 │   │                                                                        │
│   1403 │   │   if self.callback is not None:                                        │
│ ❱ 1404 │   │   │   return ctx.invoke(self.callback, **ctx.params)                   │
│   1405 │                                                                            │
│   1406 │   def shell_complete(self, ctx: Context, incomplete: str) -> t.List["Compl │
│   1407 │   │   """Return a list of completions for the incomplete value. Looks      │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/click/core.py:760 in invoke      │
│                                                                                     │
│    757 │   │                                                                        │
│    758 │   │   with augment_usage_errors(__self):                                   │
│    759 │   │   │   with ctx:                                                        │
│ ❱  760 │   │   │   │   return __callback(*args, **kwargs)                           │
│    761 │                                                                            │
│    762 │   def forward(                                                             │
│    763 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B90 │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/typer/main.py:532 in wrapper     │
│                                                                                     │
│   529 │   │   │   │   use_params[k] = v                                             │
│   530 │   │   if context_param_name:                                                │
│   531 │   │   │   use_params[context_param_name] = click.get_current_context()      │
│ ❱ 532 │   │   return callback(**use_params)  # type: ignore                         │
│   533 │                                                                             │
│   534 │   update_wrapper(wrapper, callback)                                         │
│   535 │   return wrapper                                                            │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/autodecrypt/main.py:88 in main   │
│                                                                                     │
│    85 │   │   typer.echo(msg)                                                       │
│    86 │   │   return -1                                                             │
│    87 │                                                                             │
│ ❱  88 │   json_data = fw_utils.get_json_data(device)                                │
│    89 │                                                                             │
│    90 │   if build is None:                                                         │
│    91 │   │   build = fw_utils.get_build_id(json_data, ios_version)                 │
│                                                                                     │
│ /home/fujiwara/.local/lib/python3.11/site-packages/autodecrypt/fw_utils.py:44 in    │
│ get_json_data                                                                       │
│                                                                                     │
│    41 │   if fw_type == "ota":                                                      │
│    42 │   │   url += "?type=ota"                                                    │
│    43 │   resp = requests.get(url=url)                                              │
│ ❱  44 │   return resp.json()                                                        │
│    45                                                                               │
│    46                                                                               │
│    47 def get_firmware_url(json_data: dict, buildid: str) -> str:                   │
│                                                                                     │
│ /usr/lib/python3.11/site-packages/requests/models.py:975 in json                    │
│                                                                                     │
│    972 │   │   except JSONDecodeError as e:                                         │
│    973 │   │   │   # Catch JSON-related errors and raise as requests.JSONDecodeErro │
│    974 │   │   │   # This aliases json.JSONDecodeError and simplejson.JSONDecodeErr │
│ ❱  975 │   │   │   raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)               │
│    976 │                                                                            │
│    977 │   @property                                                                │
│    978 │   def links(self):                                                         │
╰─────────────────────────────────────────────────────────────────────────────────────╯
JSONDecodeError: Expecting value: line 1 column 1 (char 0)

I am unsure if I just ran the program wrong, missing a dependency, ios 16.3 isn't supported as of yet, or maybe there is a bug in the code.

This is the command I ran:

autodecrypt -f 098-25065-056.dmg -d 10,4 -i 16.3

Maybe I am just misunderstanding how to use the program and maybe it doesn't work for ios dmg decryption.

Other info:
I am trying to decrypt the rootfs of an iOS 16.3 iPhone 8 GSM image

My computer is using a recently updated version of fedora 37, and I am pretty sure my version of python and pip is the most recent release available for fedora too.

Sorry again, thanks in advance!

iPad2,2

[i] downloading iBoot.k94.RELEASE.img3
Traceback (most recent call last):
File "./autodecrypt.py", line 129, in
main()
File "./autodecrypt.py", line 106, in main
magic, image_type = decrypt_img.get_image_type(parser.img_file)
TypeError: cannot unpack non-iterable NoneType object

TypeError

Hello i am trying to decrypt a img3 file and get the following error

python3 autodecrypt -f /Users/joranosinga/Downloads/iPad2,5_9.3.5_13G36_Restore/Firmware/all_flash/all_flash.p105ap.production/iBoot.p105.RELEASE.img3 -i 9.3.5 -d iPad2,5
Traceback (most recent call last):
File "autodecrypt", line 130, in
magic, image_type = decrypt_img.get_image_type(file)
File "./decrypt_img.py", line 13, in get_image_type
with open(filename, 'rb') as file:
TypeError: expected str, bytes or os.PathLike object, not NoneType

Switch from theiphonewiki to theapplewiki

The iphonewiki's firmware keys page is outdated. For example, the latest keys available for the iPhone SE (1st generation) on theiphonewiki are 15.7.1, but theapplewiki has the latest as of 7/14/2023, 15.7.7.

KeyError: 'content-range'

$ autodecrypt -f iBoot.d321.RELEASE.im4p -d iPhone11,2 -b 17A5492t -i 13.0 --beta
Traceback (most recent call last):
  File "/usr/local/bin/autodecrypt", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/autodecrypt/main.py", line 77, in main
    img_file = utils.download_beta_file(parser, json_data)
  File "/usr/local/lib/python3.9/site-packages/autodecrypt/utils.py", line 104, in download_beta_file
    img_file = fw_utils.grab_file(fw_url, parser.img_file)
  File "/usr/local/lib/python3.9/site-packages/autodecrypt/fw_utils.py", line 13, in grab_file
    with RemoteZip(url) as zipfile:
  File "/usr/local/lib/python3.9/site-packages/remotezip.py", line 130, in __init__
    super(RemoteZip, self).__init__(rio)
  File "/usr/local/Cellar/[email protected]/3.9.2_4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/zipfile.py", line 1257, in __init__
    self._RealGetContents()
  File "/usr/local/Cellar/[email protected]/3.9.2_4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/zipfile.py", line 1320, in _RealGetContents
    endrec = _EndRecData(fp)
  File "/usr/local/Cellar/[email protected]/3.9.2_4/Frameworks/Python.framework/Versions/3.9/lib/python3.9/zipfile.py", line 263, in _EndRecData
    fpin.seek(0, 2)
  File "/usr/local/lib/python3.9/site-packages/remotezip.py", line 104, in seek
    self.buffer = self.fetch_fun((-size, None), stream=False)
  File "/usr/local/lib/python3.9/site-packages/remotezip.py", line 170, in fetch_fun
    return self.make_buffer(res, headers['Content-Range'], stream=stream)
  File "/usr/local/lib/python3.9/site-packages/requests/structures.py", line 54, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'content-range'

this happens even when i say -f iBoot, and
I can't just use the build id, since that errors out saying

[i] please specify iOS version
[e] could not grab file

How to use this tool to decrypt keys from device with Iphone8,2 after checkra1n jailbreak on ios 13.6

Hello.

I have tried to get the keys from my device using autodecrypt. I have installed all the dependencies ( I hope). when I use the command that is in the readme on this GitHub under the section decrypt keys from device. I cant seem to get anything to work all I get is the iBoot file. The rest is errors:

autodecrypt -f iBoot -i 13.6 -d iPhone8,1 --ip 192.168.1.27
[i] downloading iBoot.n71.RELEASE.im4p
[i] grabbing keys from gidaes server on %s:12345 192.168.1.27
Traceback (most recent call last):
File "/home/xmed/.local/bin/autodecrypt", line 11, in
load_entry_point('autodecrypt==2.0.2', 'console_scripts', 'autodecrypt')()
File "/home/xmed/.local/lib/python3.7/site-packages/autodecrypt-2.0.2-py3.7.egg/autodecrypt/autodecrypt.py", line 110, in main
File "/home/xmed/.local/lib/python3.7/site-packages/autodecrypt-2.0.2-py3.7.egg/autodecrypt/decrypt_img.py", line 53, in get_kbag
File "/usr/lib/python3.7/subprocess.py", line 411, in check_output
**kwargs).stdout
File "/usr/lib/python3.7/subprocess.py", line 488, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.7/subprocess.py", line 800, in init
restore_signals, start_new_session)
File "/usr/lib/python3.7/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'img4': 'img4'

I have the img4lib and img4

Im on linux(ubuntu)

Thank you for your help. I am new to all this and I dont know if Im posting in the right place and if it is correct to post about this.
New to github and ios cfw and jailbreak.
Thanks again :)

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.