Archive for May, 2020

Binary Exploitation: ROP chaining + ASLR + 32-bit binary + buffer overflow HowTo

https://tcode2k16.github.io/blog/posts/picoctf-2018-writeup/binary-exploitation/

https://blog.skullsecurity.org/2015/defcon-quals-r0pbaby-simple-64-bit-rop

https://crypto.stanford.edu/~blynn/rop/

https://docs.pwntools.com/en/stable/rop/rop.html

http://season-lab.github.io/papers/ropmate-VIZSEC18.pdf

https://github.com/Gallopsled/pwntools-write-ups/pull/37/files

https://hack.more.systems/writeup/2017/11/07/hitconctf-start/

https://medium.com/@iseethieves/intro-to-rop-rop-emporium-split-9b2ec6d4db08

https://nandynarwhals.org/ret2libc-namedpipes/

https://security.cs.pub.ro/summer-school/wiki/session/12

https://tasteofsecurity.com/security/ret2libc-unknown-libc/

https://tcode2k16.github.io/blog/posts/picoctf-2018-writeup/binary-exploitation/

https://www.hackthezone.com/wp-content/uploads/2019/11/Weaponizing-ROP-with-PwNtools-ANDREI-GRIGORAS-18oct2019HTZ.pdf

https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/babys-first-nxplusaslr-bypass/

Understand Memory Leaks in a Java Application

https://stackify.com/memory-leaks-java/

https://www.baeldung.com/java-memory-leaks

https://dzone.com/articles/native-memory-leak-example

https://plumbr.io/blog/memory-leaks/memory-leaks-fallacies-and-misconceptions

https://stackoverflow.com/questions/14696718/is-this-indicative-of-a-memory-leak-in-java

https://stackoverflow.com/questions/48624702/java-heap-space-memory-leak/48624828

https://developers.redhat.com/blog/2014/08/14/find-fix-memory-leaks-java-application/

https://www.holdapp.com/blog/android-small-talks-memory-leaks-android

Learning about Linux network namespace with Docker

https://dev.vividbreeze.com/docker-networking-bridge-network/

https://medium.com/@jamesemyn/basic-docker-networking-9130ab889359
https://techoopla.wordpress.com/2017/11/05/the-containerization-of-appsdocker-networks/

https://www.docker.com/blog/understanding-docker-networking-drivers-use-cases/

https://www.edureka.co/community/51244/what-are-the-different-types-of-docker-networking-drivers

https://www.nuagenetworks.net/blog/docker-networking-overview/

https://www.techrepublic.com/article/how-to-create-and-manage-docker-networks/

Solving a AMD graphics card (Radeon RX 5600 XT) problem with Ubuntu 18.04.2

After installing Ubuntu 18.04.2, and doing all the updates, I will immediately be faced with a blank black screen. No graphics display, but I only can ssh inside (after I had install OpenSSH server during the updates) and get the following output (show the lines with “amdgpu”):

Or if you just focus on the last few lines in dmesg:

[   34.114646] gmc_v10_0_process_interrupt: 2 callbacks suppressed
[   34.114650] amdgpu 0000:0c:00.0: [gfxhub] VMC page fault (src_id:0 ring:157 vmid:1 pasid:32769)
[   34.114654] amdgpu 0000:0c:00.0: at page 0x0000800000020000 from 27
[   34.114655] amdgpu 0000:0c:00.0: VM_L2_PROTECTION_FAULT_STATUS:0x00101D3A
[   44.224670] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring sdma1 timeout, signaled seq=2, emitted seq=3
[   44.224727] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process Xorg pid 1847 thread Xorg:cs0 pid 1848
[   44.224729] [drm] GPU recovery disabled.
[ 1088.448003] INFO: task (tmpfiles):2028 blocked for more than 120 seconds.
[ 1088.448007] Tainted: G OE 5.3.0-51-generic #44~18.04.2-Ubuntu
[ 1088.448008] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1088.448009] (tmpfiles) D 0 2028 1 0x00000000
[ 1088.448012] Call Trace:
[ 1088.448018] __schedule+0x2a8/0x670
[ 1088.448020] schedule+0x33/0xa0
[ 1088.448021] schedule_preempt_disabled+0xe/0x10
[ 1088.448023] __mutex_lock.isra.9+0x26d/0x4e0
[ 1088.448024] __mutex_lock_slowpath+0x13/0x20
[ 1088.448026] ? __mutex_lock_slowpath+0x13/0x20
[ 1088.448027] mutex_lock+0x2f/0x40
[ 1088.448081] amdgpu_ctx_mgr_entity_flush+0x38/0xb0 [amdgpu]
[ 1088.448084] ? fsnotify_find_mark+0x16/0x90
[ 1088.448126] amdgpu_flush+0x29/0x50 [amdgpu]
[ 1088.448129] filp_close+0x2f/0x80
[ 1088.448131] __close_fd+0x85/0xa0
[ 1088.448132] __x64_sys_close+0x22/0x50
[ 1088.448135] do_syscall_64+0x5a/0x130
[ 1088.448137] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 1088.448138] RIP: 0033:0x7fb8410a18f7
[ 1088.448144] Code: Bad RIP value.
[ 1088.448145] RSP: 002b:00007ffd4a4be4a0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
[ 1088.448147] RAX: ffffffffffffffda RBX: 0000000000000046 RCX: 00007fb8410a18f7
[ 1088.448147] RDX: 0000000000000000 RSI: 00007ffd4a4be544 RDI: 0000000000000046
[ 1088.448148] RBP: 000055d2518a7490 R08: 000055d2518a7b95 R09: 0000000000000000
[ 1088.448149] R10: 00007fb84112fcc0 R11: 0000000000000293 R12: 00007fb841582d40
[ 1088.448149] R13: 0000000000000000 R14: 0000000000000001 R15: 00007ffd4a4be540

Zooming down to the exact issue:

[    3.860279] [drm] Initialized amdgpu 3.33.0 20150101 for 0000:0c:00.0 on minor 0
[   34.114650] amdgpu 0000:0c:00.0: [gfxhub] VMC page fault (src_id:0 ring:157 vmid:1 pasid:32769)
[   34.114654] amdgpu 0000:0c:00.0: at page 0x0000800000020000 from 27
[   34.114655] amdgpu 0000:0c:00.0: VM_L2_PROTECTION_FAULT_STATUS:0x00101D3A
[   44.224670] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring sdma1 timeout, signaled seq=2, emitted seq=3
[   44.224727] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process Xorg pid 1847 thread Xorg:cs0 pid 1848

Suspicion is now on the kernel modules for AMD graphics (AMDGPU) is not loading correctly as above.   And this kernel is also the latest from Ubuntu: 5.3.0-51-generic.

Other miscellaneous information:

uname -a
Linux ubuntu8 5.3.0-51-generic #44~18.04.2-Ubuntu SMP Thu Apr 23 14:27:18 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Listing the loaded kernel modules:

lsmod |grep amdgpu

amdgpu 4112384 4
amd_iommu_v2 20480 1 amdgpu
gpu_sched 32768 1 amdgpu
ttm 102400 1 amdgpu
drm_kms_helper 180224 1 amdgpu
drm 491520 6 gpu_sched,drm_kms_helper,amdgpu,ttm
i2c_algo_bit 16384 2 igb,amdgpu

The graphic card is having a hardtime booting up.

Before I described my final solution, let me described what has been tried before – all focusing on this latest kernel from Ubuntu.

1. Go to AMD to download the latest AMDGPU drivers (https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux) and tried a few (one for 18.04.3 and another for 18.04.4) and after installation I will get “amdgpu dkms failed for running kernel” errors.   Tried all the recommendations as mentioned below and all failed.

https://askubuntu.com/questions/1040474/warning-amdgpu-dkms-failed-for-running-kernel-on-both-16-04-18-04

https://unix.stackexchange.com/questions/501267/how-to-fix-amdgpu-dkms-failed-for-running-kernel-when-installing-amd-gpu-drive

2. Set “nomodeset” into the linux kernel boot parameters during bootup.   This will bootup fine, but there will be no high-resolution graphics, and the display is horrible.

3.   Go to “GUI”-less mode, and reinstall the AMDGPU drivers?   (Assuming the error is from some graphics files being locked and thus reinstallation is not successful?)   And then later reenable GUI?   No it does not work.

https://askubuntu.com/questions/1056363/how-to-disable-gui-on-boot-in-18-04-bionic-beaver

4.   Is it really my graphics card problem?   Well I installed Ubuntu server + desktop and al the different variations in VMware and there is absolutely no errors, all successfully updated.

5.   Since the initial installation of Ubuntu 18.04.2 has no problem, and it only happened after I did the update, can I disable updates?   No, everytime you install anything via apt-get, updates is somehow going to happen, and disabling will still get the new kernel (5.3.0-51-generic) into the system.

6.   Can I blacklist the amdgpu kernel modules from being loaded inside /etc/modprobe.d/blacklist.conf?   Can, the graphics will be horrible.

So why not rebuild the AMDGPU kernel drivers ourselves?  AMD Radeon graphics drivers comes default as part of linux kernel (thank you AMD for opensourcing it, unlike Nvidia drivers) and so I decided to rebuild it myself.

Downloading the latest stable kernel: 5.6.11. And now starting the rebuilding process (this is traditional linux kernel building so the steps are not explained here):

1. Download and un-xz and untar.
2. Copy the /boot/config-5.3.0-generic as ".config" and "make oldconfig"
3. make -j 12
4. sudo make modules_install
5. sudo make install

There were some errors, but since initrd is generated successfully, we shall try loading it.

Now rebooting:

[    8.335417] [drm] amdgpu kernel modesetting enabled.
[    8.335462] Parsing CRAT table with 1 nodes
[    8.335465] Ignoring ACPI CRAT on non-APU system
[    8.335466] Virtual CRAT table created for CPU
[    8.335466] Parsing CRAT table with 1 nodes
[    8.335467] Creating topology SYSFS entries
[    8.335472] Topology: Add CPU node
[    8.335472] Finished initializing topology
[    8.335561] checking generic (e0000000 300000) vs hw (e0000000 10000000)
[    8.335561] fb0: switching to amdgpudrmfb from EFI VGA
[    8.335640] Console: switching to colour dummy device 80x25
[    8.335663] amdgpu 0000:0c:00.0: vgaarb: deactivate vga console
[    8.335798] [drm] initializing kernel modesetting (NAVI10 0x1002:0x731F 0x1043:0x04E8 0xCA).
[    8.335805] [drm] register mmio base: 0xFCC00000
[    8.335806] [drm] register mmio size: 524288
[    8.360801] [drm] set register base offset for ATHUB
[    8.360802] [drm] set register base offset for CLKA
[    8.360802] [drm] set register base offset for CLKA
[    8.360802] [drm] set register base offset for CLKA
[    8.360803] [drm] set register base offset for CLKA
[    8.360803] [drm] set register base offset for CLKA
[    8.360803] [drm] set register base offset for DF
[    8.360804] [drm] set register base offset for DMU
[    8.360804] [drm] set register base offset for GC
[    8.360804] [drm] set register base offset for HDP
[    8.360804] [drm] set register base offset for MMHUB
[    8.360805] [drm] set register base offset for MP0
[    8.360805] [drm] set register base offset for MP1
[    8.360805] [drm] set register base offset for NBIF
[    8.360805] [drm] set register base offset for NBIF
[    8.360806] [drm] set register base offset for OSSSYS
[    8.360806] [drm] set register base offset for SDMA0
[    8.360806] [drm] set register base offset for SDMA1
[    8.360807] [drm] set register base offset for SMUIO
[    8.360807] [drm] set register base offset for THM
[    8.360807] [drm] set register base offset for UVD
[    8.360808] [drm] add ip block number 0 <nv_common>
[    8.360809] [drm] add ip block number 1 <gmc_v10_0>
[    8.360809] [drm] add ip block number 2 <navi10_ih>
[    8.360809] [drm] add ip block number 3 <psp>
[    8.360810] [drm] add ip block number 4 <smu>
[    8.360810] [drm] add ip block number 5 <dm>
[    8.360810] [drm] add ip block number 6 <gfx_v10_0>
[    8.360811] [drm] add ip block number 7 <sdma_v5_0>
[    8.360811] [drm] add ip block number 8 <vcn_v2_0>
[    8.360811] [drm] add ip block number 9 <jpeg_v2_0>
[    8.361097] amdgpu 0000:0c:00.0: No more image in the PCI ROM
[    8.361111] ATOM BIOS: 115-D182PI0-100
[    8.361115] [drm] VCN decode is enabled in VM mode
[    8.361115] [drm] VCN encode is enabled in VM mode
[    8.361116] [drm] JPEG decode is enabled in VM mode
[    8.361129] [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[    8.361132] amdgpu 0000:0c:00.0: VRAM: 6128M 0x0000008000000000 - 0x000000817EFFFFFF (6128M used)
[    8.361133] amdgpu 0000:0c:00.0: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
[    8.361139] [drm] Detected VRAM RAM=6128M, BAR=256M
[    8.361140] [drm] RAM width 192bits GDDR6
[    8.361203] [TTM] Zone kernel: Available graphics memory: 32919338 KiB
[    8.361204] [TTM] Zone dma32: Available graphics memory: 2097152 KiB
[    8.361204] [TTM] Initializing pool allocator
[    8.361207] [TTM] Initializing DMA pool allocator
[    8.362076] [drm] amdgpu: 6128M of VRAM memory ready
[    8.362078] [drm] amdgpu: 6128M of GTT memory ready.
[    8.362086] [drm] GART: num cpu pages 131072, num gpu pages 131072
[    8.362218] [drm] PCIE GART of 512M enabled (table at 0x0000008000300000).
[    8.366481] [drm] use_doorbell being set to: [true]
[    8.366522] [drm] use_doorbell being set to: [true]
[    8.366952] [drm] Found VCN firmware Version ENC: 1.7 DEC: 4 VEP: 0 Revision: 13
[    8.366955] [drm] PSP loading VCN firmware
[    9.045941] [drm] reserve 0x7300000 from 0x8177c00000 for PSP TMR
[    9.082558] EDAC amd64: F17h_M70h detected (node 0).
[    9.082628] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.178536] EDAC amd64: F17h_M70h detected (node 0).
[    9.178603] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.266503] EDAC amd64: F17h_M70h detected (node 0).
[    9.266546] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.273916] amdgpu 0000:0c:00.0: RAS: ras ta ucode is not available
[    9.288861] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    9.288862] Bluetooth: BNEP filters: protocol multicast
[    9.288866] Bluetooth: BNEP socket layer initialized
[    9.302011] amdgpu: [powerplay] use vbios provided pptable
[    9.302086] amdgpu: [powerplay] smu driver if version = 0x00000033, smu fw if version = 0x00000035, smu fw version = 0x002a2f00 (42.47.0)
[    9.302087] amdgpu: [powerplay] SMU driver if version not matched
[    9.338947] iwlwifi 0000:06:00.0: Applying debug destination EXTERNAL_DRAM
[    9.345184] amdgpu: [powerplay] SMU is initialized successfully!
[    9.345382] [drm] Display Core initialized with v3.2.69!
[    9.367955] snd_hda_intel 0000:0c:00.1: bound 0000:0c:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[    9.390341] EDAC amd64: F17h_M70h detected (node 0).
[    9.390383] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.448489] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    9.448489] [drm] Driver supports precise vblank timestamp query.
[    9.448953] [drm] kiq ring mec 2 pipe 1 q 0
[    9.462592] [drm] VCN decode and encode initialized successfully(under DPG Mode).
[    9.462649] [drm] JPEG decode initialized successfully.
[    9.463935] kfd kfd: Allocated 3969056 bytes on gart
[    9.464480] Virtual CRAT table created for GPU
[    9.464480] Parsing CRAT table with 1 nodes
[    9.464484] Creating topology SYSFS entries
[    9.464533] Topology: Add dGPU node [0x731f:0x1002]
[    9.464534] kfd kfd: added device 1002:731f
[    9.465256] [drm] fb mappable at 0xE04C9000
[    9.465256] [drm] vram apper at 0xE0000000
[    9.465256] [drm] size 8294400
[    9.465257] [drm] fb depth is 24
[    9.465257] [drm] pitch is 7680
[    9.465285] fbcon: amdgpudrmfb (fb0) is primary device
[    9.485483] iwlwifi 0000:06:00.0: FW already configured (0) - re-configuring
[    9.518484] Console: switching to colour frame buffer device 240x67
[    9.537453] amdgpu 0000:0c:00.0: fb0: amdgpudrmfb frame buffer device
[    9.542341] EDAC amd64: F17h_M70h detected (node 0).
[    9.542437] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.553958] amdgpu 0000:0c:00.0: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
[    9.553958] amdgpu 0000:0c:00.0: ring comp_1.0.0 uses VM inv eng 1 on hub 0
[    9.553959] amdgpu 0000:0c:00.0: ring comp_1.1.0 uses VM inv eng 4 on hub 0
[    9.553959] amdgpu 0000:0c:00.0: ring comp_1.2.0 uses VM inv eng 5 on hub 0
[    9.553960] amdgpu 0000:0c:00.0: ring comp_1.3.0 uses VM inv eng 6 on hub 0
[    9.553961] amdgpu 0000:0c:00.0: ring comp_1.0.1 uses VM inv eng 7 on hub 0
[    9.553961] amdgpu 0000:0c:00.0: ring comp_1.1.1 uses VM inv eng 8 on hub 0
[    9.553962] amdgpu 0000:0c:00.0: ring comp_1.2.1 uses VM inv eng 9 on hub 0
[    9.553962] amdgpu 0000:0c:00.0: ring comp_1.3.1 uses VM inv eng 10 on hub 0
[    9.553963] amdgpu 0000:0c:00.0: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
[    9.553963] amdgpu 0000:0c:00.0: ring sdma0 uses VM inv eng 12 on hub 0
[    9.553964] amdgpu 0000:0c:00.0: ring sdma1 uses VM inv eng 13 on hub 0
[    9.553964] amdgpu 0000:0c:00.0: ring vcn_dec uses VM inv eng 0 on hub 1
[    9.553965] amdgpu 0000:0c:00.0: ring vcn_enc0 uses VM inv eng 1 on hub 1
[    9.553965] amdgpu 0000:0c:00.0: ring vcn_enc1 uses VM inv eng 4 on hub 1
[    9.553966] amdgpu 0000:0c:00.0: ring jpeg_dec uses VM inv eng 5 on hub 1
[    9.554072] [drm] Initialized amdgpu 3.36.0 20150101 for 0000:0c:00.0 on minor 0
[    9.606348] EDAC amd64: F17h_M70h detected (node 0).
[    9.606432] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.682351] EDAC amd64: F17h_M70h detected (node 0).
[    9.682468] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.762335] EDAC amd64: F17h_M70h detected (node 0).
[    9.762475] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.826257] EDAC amd64: F17h_M70h detected (node 0).
[    9.826298] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.894258] EDAC amd64: F17h_M70h detected (node 0).
[    9.894300] EDAC amd64: Node 0: DRAM ECC disabled.
[    9.954410] EDAC amd64: F17h_M70h detected (node 0).
[    9.954451] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.022494] EDAC amd64: F17h_M70h detected (node 0).
[   10.022650] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.086252] EDAC amd64: F17h_M70h detected (node 0).
[   10.086294] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.154514] EDAC amd64: F17h_M70h detected (node 0).
[   10.154561] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.226275] EDAC amd64: F17h_M70h detected (node 0).
[   10.226360] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.274631] EDAC amd64: F17h_M70h detected (node 0).
[   10.274676] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.346651] EDAC amd64: F17h_M70h detected (node 0).
[   10.346737] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.402607] EDAC amd64: F17h_M70h detected (node 0).
[   10.402648] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.442672] EDAC amd64: F17h_M70h detected (node 0).
[   10.442710] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.482769] EDAC amd64: F17h_M70h detected (node 0).
[   10.482810] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.518690] EDAC amd64: F17h_M70h detected (node 0).
[   10.518732] EDAC amd64: Node 0: DRAM ECC disabled.
[   10.566489] EDAC amd64: F17h_M70h detected (node 0).
[   10.566528] EDAC amd64: Node 0: DRAM ECC disabled.
[   11.362463] igb 0000:05:00.0 enp5s0: igb: enp5s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
[   11.470153] IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready
[   13.492978] vmmon: loading out-of-tree module taints kernel.
[   13.493023] vmmon: module verification failed: signature and/or required key missing - tainting kernel
[   13.493425] /dev/vmmon[1438]: Module vmmon: registered with major=10 minor=165
[   13.493427] /dev/vmmon[1438]: Using tsc_khz as TSC frequency: 3792873
[   13.493428] /dev/vmmon[1438]: Module vmmon: initialized
[   13.507385] Guest personality initialized and is inactive
[   13.507413] VMCI host device registered (name=vmci, major=10, minor=58)
[   13.507414] Initialized host personality
[   13.522642] NET: Registered protocol family 40
[   14.698510] userif-3: sent link down event.
[   14.698512] userif-3: sent link up event.
[   36.853913] Bluetooth: RFCOMM TTY layer initialized
[   36.853920] Bluetooth: RFCOMM socket layer initialized
[   36.853924] Bluetooth: RFCOMM ver 1.11
[   37.558513] rfkill: input handler disabled
[   65.024639] /dev/vmmon[2733]: PTSC: initialized at 3792873000 Hz using TSC, TSCs are synchronized.
[   65.115492] /dev/vmmon[2733]: Monitor IPI vector: ff
[   65.115494] /dev/vmmon[2733]: HV IPI vector: f2
[   66.206578] device enp5s0 entered promiscuous mode
[   66.206820] bridge-enp5s0: enabled promiscuous mode

Everything is working.

References:

https://forum.manjaro.org/t/system-freezes-amdgpu-error-solved/132429/8

https://gitlab.freedesktop.org/drm/amd/issues/892

https://dri-devel.freedesktop.narkive.com/IlHIOwLi/bug-102322-system-crashes-after-drm-ip-block-gmc-v8-0-is-hung-drm-ip-block-sdma-v3-0-is-hung

Vickblöm

Research scattered with thoughts, ideas, and dreams

Penetration Testing Lab

Offensive Techniques & Methodologies

Astr0baby's not so random thoughts _____ rand() % 100;

@astr0baby on Twitter for fresh randomness

The Data Explorer

playing around with open data to learn some cool stuff about data analysis and the world

Conorsblog

Data | ML | NLP | Python | R

quyv

Just a thought

IFT6266 - H2017 Deep Learning

A Graduate Course Offered at Université de Montréal

Deep Learning IFT6266-H2017 UdeM

Philippe Paradis - My solutions to the image inpainting problem

IFT6266 – H2017 DEEP LEARNING

Pulkit's thoughts on the course project

Thomas Dinsmore's Blog

No man but a blockhead ever wrote except for money -- Samuel Johnson

the morning paper

a random walk through Computer Science research, by Adrian Colyer

The Spectator

Shakir's Machine Learning Blog