Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Tor Browser
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,322
    • Issues 1,322
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 7
    • Merge requests 7
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Applications
  • Tor Browser
  • Issues
  • #22315
Closed
Open
Created May 20, 2017 by cypherpunks@cypherpunks

Make use of interceptor to protect memory on Windows (spin-off from #12426)

add EnableLowFragmentationHeap() modified from ​https://dxr.mozilla.org/mozilla-esr24/source/ipc/chromium/src/base/process_util_win.cc#867 It was an old approach from Google that couldn't be applied, because it was single-threaded and led to: https://blogs.msdn.microsoft.com/oldnewthing/20110701-00/?p=10273/ So that they added just https://chromium.googlesource.com/chromium/src/+/e4adea20236d1cee76f0c61798b1613e07a7f4c1/chrome/app/chrome_exe_main_win.cc#113 from a well-known approach http://microsoft.public.vsnet.general.narkive.com/vkWRTQaL/low-fragmentation-heap, but with that test https://chromium.googlesource.com/chromium/src/+/95b42e2745a2380a16112a059bd0e842d81f0c0a/base/process_util_unittest.cc#377 So you can add Chromium's solution as fast and easy fix (as in legacy/trac#12426 (moved)), but for the default heap only.

A more general approach is to use an interceptor for LFH, bottom-up ASLR and other mitigations on every relevant memory allocation: https://github.com/promised-lu/MemoryProtection/blob/master/MemoryProtection/MemoryProtection.cxx

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking