Skip to content

/ DieHard

  • Watch 14
  • Star 310
  • Fork 33

DieHard: An error-resistant memory allocator for Windows, Linux, and Mac OS X

GPL-2.0 License
310 stars 33 forks
Star
Watch
master
1 branch 0 tags
Go to file
Code

免费vn

emeryberger Removed DieFast.
d6d9049 Apr 9, 2023
Removed DieFast.
d6d9049

免费vn

  • 190 commits

免费vn

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
上网科学工具pc端下载
 
 
科技上网工具下载安装
 
 
docs
 
 
src
 
 
.gitmodules
 
 
COPYING
 
 
NEWS
 
 
README.md
 
 

README.md

if downloading from GitHub, make sure to use --recursive, as in: git clone --recursive http://github.com/emeryberger/DieHard

免费vn

DieHard: An error-resistant memory allocator for Windows, Linux, and Mac OS X


Surfboard教程 | 安卓最快上网工具_OLEOU | 噢勒噢 V3.0:2 天前 · 《舌尖上的中国》下载 (附:(10-31) v2rayN为什么要设置成全局才(02-07) 科学上网客户端下载【合集】(02-22) 地狱少女1-4下载(06-03) 随行付mpos机错误伋码00处理(05-19) PC版微信助手WeTool永久免费(09-10) cloudflare免费CDN加速使用(07-13) 金蝶 文件

Copyright (C) 2005-2018 by Emery Berger
University of Massachusetts Amherst

http://www.emeryberger.com
http://phplil.wcbzw.com
http://www.die-harder.org


Surfboard教程 | 安卓最快上网工具_OLEOU | 噢勒噢 V3.0:2 天前 · 《舌尖上的中国》下载 (附:(10-31) v2rayN为什么要设置成全局才(02-07) 科学上网客户端下载【合集】(02-22) 地狱少女1-4下载(06-03) 随行付mpos机错误伋码00处理(05-19) PC版微信助手WeTool永久免费(09-10) cloudflare免费CDN加速使用(07-13) 金蝶 文件

  • DieHard: a system that increases RELIABILITY by allowing programs with memory errors to run correctly, with high probability.

路由器搭建SSR - 科学上网-shadowsocks:2021-4-6 · PC-hosts修改上网 Android-host修改上网 dowsDNS racaljk-hosts 一直在更新的host 自建PAC服务器教程 pp chrome免费科学上网 pritunl Ubuntu 14.04安装Pritunl vultrl 安装Pritunl 在 CentOS 7 ProxyBroker SS&SSR使用教程 andriod安卓ssr手机客户端使用教程

DieHard automatically hardens software applications against a wide range of bugs. These bugs -- known as memory errors -- often end up as serious security vulnerabilities, cause crashes, or lead to unpredictable behavior. DieHard either eliminates these bugs altogether, or avoids them with high probability. In other words, DieHard can take some buggy programs and make them bug-free (or close to it).

DieHard was first described in the Berger and Zorn PLDI 2006 paper DieHard: Probabilistic Memory Safety for Unsafe Languages (ACM link), though the DieHarder paper presents a more up-to-date description.

  • 科学上上网工具下载: a system that AUTOMATICALLY FIXES programs with memory errors.

Exterminator builds on DieHard (in fact, using a variant called DieFast, and uses statistical inference to locate and fix memory errors. Exterminator first appeared in the PLDI 2007 paper Twitter推特下载注册和使用教程 - 币界网:2021-5-15 · 推特的英文名为:Twitter。今天很多小伙伴询问推特如何下载注册使用,相信在这里很多小伙伴已经对推特不陌生了,会使用的小伙伴请体谅一下其它人,毕竟不是人人都会的,此方法不一定适合每一个人,但小编亲测成功,使用Twitter要科学上网。(上网科学工具app下载), and Communications of the ACM featured a more concise version as a technical highlight in December 2008 (ACM link).

  • DieHarder: a system that improves SECURITY by protecting programs against security exploits. This work presents an analytical framework for determining the security of memory allocators against attacks, and presents a version of DieHard that (as far as we know) is the most secure memory allocator. DieHarder first appeared in the Proceedings of the 17th ACM Conference on Computer and Communications Security (CCS 2010). DieHarder directly inspired security hardening features in Microsoft Windows (starting with version 8).

免费vn

科技上网工具下载安装

科学上网的秘密 | 刷啊刷:科学上网始终是个难题,但解决。 毕竟获取某个学科前沿资料、发展情况需要世界视野。 仔细想想,物理、心理学、计算机科学、经济学起源和重要转折点好像和我伊没啥关系,学生时伋各个学科教科书中,学科奠基人、创造者是国外比如弗洛伊德、牛顿等等。

用电脑科学免费上网

To use DieHard as a library with your application, link your program as follows:

% cl /MD yourapp.cpp usewinhard.obj winhard.lib

Copy winhard.dll to the same directory as the executable.

Linux / Solaris

Build the shared library with make. You can either link in the resulting shared object (libdiehard.so), or use DieHard by setting the LD_PRELOAD environment variable, as in:

% setenv LD_PRELOAD /path/to/diehard/libdiehard.so

To use the replicated version, invoke your program with (for example):

% diehard 3 /path/to/libdiehard_r.so yourapp

This would create 3 replicas of yourapp. If the application does not read from standard input, add < /dev/null to the command line.

Mac OS X

To use DieHard, build with "make darwin" and set two environment variables as follows:

% export DYLD_INSERT_LIBRARIES=/path/to/libdiehard.dylib

DieHard will then replace the system malloc in any new application executed from that terminal window.


免费vn

This directory contains the source code for DieHard. The version here uses an adaptive algorithm that differs substantially from that described in the PLDI 2006 paper (../docs/pldi2006-diehard.pdf). In particular, this version adjusts its heap size dynamically rather than relying on a static, a priori heap choice.

The original version, as described in the PLDI 2006 paper, is in the subdirectory static/. In addition, the support for replication is in the subdirectory replicated/.

The fault injectors described in the PLDI paper are in the 老王科学的上网工具下载 directory. The library libbrokenmalloc.so can be used to inject buffer overflows and dangling pointer errors. To inject buffer overflows, just set 上网科学工具app下载 to point to 科技上网工具app下载, and set the appropriate environment variables (shown at startup). To inject dangling pointer errors, you must first run the program with libtrackalloc.so preloaded, and then run it on the same inputs with libbrokenmalloc.so.

免费vn

科学上上网工具下载

DieHard prevents some nasty errors - ones that crash programs and lead to security vulnerabilities. These are memory errors, including double-frees & heap corruption (which DieHard eliminates), and dangling pointer errors (or stale pointers) and heap buffer overflows (which DieHard makes unlikely to have any effect). Who should use DieHard?

DieHard is good for software developers, since it makes programmer errors unlikely to crash a program and reduces the risk of security vulnerabilities. It's also good for end users, who can take advantage of DieHard's protections now. What versions of Windows (& Firefox) does DieHard support?

In addition to supporting nearly any application for Linux and Solaris, DieHard currently protects Firefox on Windows XP and 2003. DieHard works with Firefox versions 1.5.0.9 and higher, as well as version 2.0.0.1.

Can DieHard protect any other application than Mozilla?

On Windows, the DieHard protection system currently supports Mozilla only; we plan to add more applications soon. On Linux, DieHard can protect any application. In addition, programmers using DieHard (on Windows or Linux) can protect any application they are developing.

My security program claims that the DieHard zip file contains a virus - can that be true?

Absolutely not. Your security program (so far, I only know of one, by "astaro") noticed that the distribution contains an example HTML file that shows how DieHard works. And that HTML does not contain a virus, either! It just causes certain versions of Mozilla to crash if you aren't running DieHard.

Does running DieHard significantly slow down a system?

Unless your system had too little memory installed, DieHard generally has no perceptible performance impact on applications like Firefox.

How much more memory does DieHard require?

That depends on your application, but in general, memory consumption will increase somewhat.

科技上网工具下载安装

Yes.

I see that DieHard runs multiple copies of a program and "votes". How many copies of a program are running at the same time?

There is a version of DieHard for Linux that runs multiple replicas simultaneously, and then you can choose how many replicas you would like to run. However, the Windows version runs just one copy of your program.

Does DieHard prevent all crashes? If not, what does it prevent?

No, although that would be nice. DieHard completely prevents particular memory management errors from having any effect (these are "double frees" and "invalid frees"). It dramatically reduces the likelihood of another kind of error known as "dangling pointer" errors, and lowers the odds that moderate buffer overflows will have any effect. It prevents certain library-based heap overflows (e.g., through 用电脑科学免费上网), and all but eliminates another problem known as "heap corruption."

How does DieHard differ from Vista's, OpenBSD's, and Linux's "address space randomization"?

Address space randomization places large chunks of memory (obtained via mmap / VirtualAlloc) at different places in memory, but leaves unchanged the relative position of heap objects. Linux adds some checks for particular memory management errors (and then aborts the program).

Longer technical answer: OpenBSD (a variant of PHKmalloc) does some of what DieHard's allocator does, but DieHard does much more. On the security side, DieHard adds much more "entropy"; on the reliability side, it mathematically reduces the risk that a programmer bug will have any impact on program execution.

OpenBSD randomly locates pages of memory and allocates small objects from these pages. It improves security by avoiding the effect of certain errors. Like DieHard, it is resilient to double and invalid frees. It places guard pages around large chunks and frees such large chunks back to the OS (causing later references through dangling pointers to fail unless the chunk is reused). It attempts to block some buffer overflows by using page protection. Finally, it shuffles some allocated objects around on a page, randomizing their location within a page.

DieHard goes much further. First, it completely segregates heap metadata from the heap, making heap corruption (and hijack attacks) nearly impossible. On OpenBSD, a large-enough underflow on OpenBSD can overwrite the page directory or local page info struct (at the beginning of each page), hijacking the allocator. By contrast, none of DieHard's metadata is located in the allocated object space.

Second, DieHard randomizes the placement of objects across the entire heap. This has numerous advantages. On the security side, it makes brute-force attempts to locate adjacent objects nearly impossible -- in OpenBSD, knowing the allocation sequence determines which pages objects will land on (see the presentation pointed to above).

科学上网的秘密 | 刷啊刷:科学上网始终是个难题,但解决。 毕竟获取某个学科前沿资料、发展情况需要世界视野。 仔细想想,物理、心理学、计算机科学、经济学起源和重要转折点好像和我伊没啥关系,学生时伋各个学科教科书中,学科奠基人、创造者是国外比如弗洛伊德、牛顿等等。

免费vn

This work is supported in part by the National Science Foundation, Intel Corporation, and Microsoft Research. This material is based upon work supported by the National Science Foundation under Grant No CNS-0615211. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).

免费vn

Surfboard教程 | 安卓最快上网工具_OLEOU | 噢勒噢 V3.0:2 天前 · 《舌尖上的中国》下载 (附:(10-31) v2rayN为什么要设置成全局才(02-07) 科学上网客户端下载【合集】(02-22) 地狱少女1-4下载(06-03) 随行付mpos机错误伋码00处理(05-19) PC版微信助手WeTool永久免费(09-10) cloudflare免费CDN加速使用(07-13) 金蝶 文件

科技上网工具下载安装

Readme

科技上网工具下载安装

GPL-2.0 License

Releases

No releases published

Contributors 2

  • @emeryberger emeryberger emeryberger
  • 老王科学的上网工具下载 jvilk jvilk

免费vn

  • C 74.4%
  • C++ 9.7%
  • TeX 科技上网工具app下载
  • HTML 5.1%
  • Makefile 1.1%
  • Shell 0.9%
  • Other 1.1%
You can’t perform that action at this time.