diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..004bebd035dedca66af165e6c41de6cdb6fa396b --- /dev/null +++ b/LICENSE @@ -0,0 +1,4 @@ +Copyright (C) 2025 Qiuarctica +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 627cde28ae7bfb6783f85f3cb754ac35f566edec..297f7b670fb6256ef4a2ef2ec89049b1bf517d3e 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,85 @@ + # Memory is all you check : è½»é‡é«˜æ•ˆçš„Heap异常检测工具 -我们队"我é‡ç”Ÿäº†è¿™ä¸€ä¸–我è¦å¤ºå›žå±žäºŽæˆ‘çš„OSèµ›å† å†›"æ¥è‡ª**哈尔滨工业大å¦(深圳)**, 基本情况如下: +## 一ã€åŸºæœ¬ä¿¡æ¯ | 赛题 | [proj248-heap_detection](https://github.com/oscomp/proj248-heap_detection) | -| ---------- | ---------------------------------------------------------------------------- | -| 队ä¼åç§° | 我é‡ç”Ÿäº†è¿™ä¸€ä¸–我è¦å¤ºå›žå±žäºŽæˆ‘çš„OSèµ›å† å†› | -| å°ç»„æˆå‘˜ | æŽç´«å‰‘ã€å†¯é”¦å¤ã€ç« åŠ²é‡ | -| 项目导师 | å‹‡å¥ | -| 指导è€å¸ˆ | 夿–‡ã€æŽè¯—逸 | +| -------- | -------------------------------------------------------------------------- | +| 队ä¼åç§° | 我é‡ç”Ÿäº†è¿™ä¸€ä¸–我è¦å¤ºå›žå±žäºŽæˆ‘çš„OSèµ›å† å†› | +| å°ç»„æˆå‘˜ | æŽç´«å‰‘ã€å†¯é”¦å¤ã€ç« åŠ²é‡ | +| 项目导师 | å‹‡å¥ | +| 指导è€å¸ˆ | 夿–‡ã€æŽè¯—逸 | -## 技术简介 +截至åˆèµ›ç»“æŸæ—¶é¡¹ç›®å®žçŽ°ç›®æ ‡ä¸Šå®Œæˆæƒ…况如下: +| 实现内容 | å®Œæˆæƒ…况 | 说明 | +| :------------------------------------------------------------------------------------: | :---------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| ç›®æ ‡1 : 通过llvm IR文件生æˆç¨‹åºCFG与CG | 100% | ①摘å–程åºCFG(Control Flow Graph),分æžç¨‹åºçš„æ‰§è¡Œè·¯å¾„和控制ä¾èµ–性;分æžç¨‹åºCG(Call Graph),分æžç¨‹åºå‡½æ•°è°ƒç”¨å…³ç³»å›¾ | +| ç›®æ ‡2 : 完æˆIR层é¢çš„陿€åˆ†æžæ¨¡å—,在编译期对程åºè¿›è¡Œç¬¦å·æ‰§è¡Œå¹¶åˆ†æžå‡ºå¯èƒ½å˜åœ¨çš„内å˜é—®é¢˜ | 80% | â‘ é‡‡ç”¨ç¬¦å·æ‰§è¡Œç®—法与Worklist算法实现了一个高效,轻é‡çš„IR层é¢é™æ€åˆ†æžå·¥å…·ï¼Œå¯ä»¥è¯†åˆ«ç¼“冲区溢出,空指针解引用,释放åŽä½¿ç”¨ï¼ŒåŒé‡é‡Šæ”¾ï¼Œå†…å˜æ³„æ¼ï¼Œæœªåˆå§‹åŒ–内å˜ä½¿ç”¨ç‰å†…å˜é—®é¢˜<br> â‘¡ 采用函数摘è¦ï¼Œå¾ªçŽ¯å®½åŒ–(widen)ç‰ç®—法进一æ¥ä¼˜åŒ–ç¨‹åºæ•ˆçŽ‡ï¼Œå¹¶æä¾›é«˜åº¦è‡ªå®šä¹‰çš„错误检测器与报告生æˆå™¨ | +| ç›®æ ‡3 : 设计并实现å¯ä»¥åŸºäºŽé™æ€åˆ†æžæŠ¥å‘ŠåŠ¨æ€æ’桩的动æ€åˆ†æžç¨‹åº | 80% | ①基于llvm-projectä¸çš„AddressSanitizer进行修改以适é…陿€åˆ†æžæŠ¥å‘Šï¼Œå®žçŽ°åŠ¨é™ç»“åˆä»Žè€Œæé«˜asan的检测效率和精确度 | +| ç›®æ ‡4 : è¿›ä¸€æ¥æé«˜åŠ¨æ€åˆ†æžæ•ˆçŽ‡ï¼Œç»§ç»é™ä½ŽåЍæ€èµ„æºæ¶ˆè€— | 50% | ①进一æ¥åŠ å¼ºasan对影å内å˜çš„利用率,通过优化地å€ç©ºé—´ä¸æ— 用的ä½é™ä½Žasançš„å†…å˜æ¶ˆè€—<br>â‘¡ åœ¨ç›®æ ‡3çš„åŸºç¡€ä¸Šè¿›ä¸€æ¥æ·»åŠ åŽ»å†—ä½™åŠŸèƒ½ï¼Œç»§ç»é™ä½Žasançš„åŠ¨åŠ¨æ€æ£€æµ‹æ¶ˆè€— | +| ç›®æ ‡5 : 在æ“作系统方é¢è®¾ç½®èµ„æºæ£€æµ‹ç¨‹åºï¼Œåœ¨è¿è¡Œä¸åЍæ€è§¦å‘å†…å˜æ³„æ¼æ£€æµ‹ç¨‹åº | 20%(预计决赛完æˆ) | ①系统æ€ä¸Žç”¨æˆ·æ€ç›¸ç»“åˆï¼ŒåŠ¨æ€æ•æ‰æ“作系统以åŠè¿›ç¨‹çš„资æºç‰¹å¾ï¼Œé€šè¿‡(未确定)算法实现è¿è¡Œæ—¶åЍæ€è§¦å‘å†…å˜æ³„æ¼æ£€æµ‹ | +| ç›®æ ‡6 : (暂未确定)(å¯ä¾›é€‰æ‹©çš„æœ‰äº‘å¹³å°/ç§»æ¤åˆ°nuttx上ç‰) | 0%(预计决赛进行) | â‘ å‰è€…å‚考å¦é•¿ï¼ŒåŽè€…应该åªéœ€è¦è¿›è¡Œç®€å•的交å‰ç¼–译?以åŠç³»ç»Ÿæ–¹é¢ç¨‹åºå¯èƒ½éœ€è¦ä¿®æ”¹ | -æˆ‘ä»¬æœŸæœ›ä»Žé™æ€æ£€æµ‹ -> åŠ¨æ€æ£€æµ‹ -> å†…æ ¸æ£€æµ‹ä¸‰ä¸ªæ–¹å‘æ¥è¿›è¡Œè¯¥ç¨‹åºçš„å¼€å‘。首先通过llvmæä¾›çš„功能对程åºè¿›è¡Œé™æ€åˆ†æžï¼Œåœ¨é™æ€åˆ†æžä¸æŒ‡å¤§éƒ¨åˆ†é—®é¢˜ï¼Œç„¶åŽåˆ©ç”¨é™æ€åˆ†æžçš„元数æ®ï¼ˆå¯èƒ½å¼‚常的指令)对代ç è¿›è¡Œæ’æ¡©ï¼Œå®žçŽ°æ—¢é«˜æ•ˆåˆå…¨é¢çš„åŠ¨æ€æ£€æµ‹ï¼Œå¹¶ä¸”åŠ¨æ€æ£€æµ‹è¿‡ç¨‹ä¸å¯ä»¥é€šè¿‡è¯»å–å†…æ ¸æ•°æ®æ¥è¿›è¡Œè¿›ä¸€æ¥çš„æ£€æµ‹ï¼ˆä¾‹å¦‚检测是å¦å‡ºçŽ°å†…å˜æ³„æ¼ +## 二ã€é¡¹ç›®æ¦‚è¿° +### 2.1 背景和æ„义 +- **内å˜é—®é¢˜çš„å±å®³ä¸ŽNuttx设备上的性能需求** + + More details +- **ä¼ ç»Ÿé™æ€ä¸ŽåŠ¨æ€æ£€æµ‹ç¨‹åºçš„ç‰¹ç‚¹ä¸ŽçŸæ¿** + + More details + +- **缺ä¹å¯¹åЍé™ç»“åˆï¼Œç³»ç»Ÿæ€ç”¨æˆ·æ€ç»“åˆæ€æƒ³çš„ç ”ç©¶** + + More details + + + **æœ¬é¡¹ç›®å°†é™æ€ç¨‹åºåˆ†æžï¼ŒåŠ¨æ€æ’桩分æžï¼Œæ“作系统,机器å¦ä¹ 模型(å˜ç–‘)四者结åˆèµ·æ¥ï¼Œæ˜¯ä¸€ç§ä»¥åˆ›æ–°çš„角度çªç ´ä¼ 统内å˜é—®é¢˜æ£€æµ‹çš„视角** +### 2.2 关于Memory is all you check +(简è¦ä»‹ç») + +(优点介ç») + +(更详细的介ç»è¯·å‚è€ƒé¡¹ç›®ä»‹ç»æ–‡æ¡£[链接到详细介ç»]) +### 2.3 MIAYC架构简述 + +(整体架构) +More details + +(陿€æž¶æž„) + +(åŠ¨æ€æž¶æž„asan) + +(系统架构 系统检测程åºä¸Žlsan) + +更多详细请å‚è€ƒå¼€å‘æ–‡æ¡£(é“¾æŽ¥åˆ°è¯¦ç»†å¼€å‘æ–‡æ¡£) + +## 三ã€é¡¹ç›®ç›®æ ‡ +### 3.1 åŸºæœ¬ç›®æ ‡ + +ç›®æ ‡list + +### 3.2 实现内容 + +行动list + +### 3.3 åˆèµ›å†…容 + +实现list + +### 3.4 决赛展望 + +展望list + +## å››ã€å®Œæˆæƒ…况 + +ç›®æ ‡å®Œæˆæƒ…况list以åŠä¸€äº›å‚æ•° +è¡ŒåŠ¨é¡¹å®Œæˆæƒ…况list + +## äº”ã€æµ‹è¯•结果(é‡ç‚¹) +需è¦å¾ˆå¤šæµ‹è¯• +## å…ã€åŠŸèƒ½å±•ç¤º +## 七ã€é¡¹ç›®æ–‡æ¡£ +列举所有文档以åŠå¦ä¹ 资料 +## å…«ã€ç›®å½•索引 \ No newline at end of file diff --git a/dynamic/README.md b/dynamic/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/image/0.\345\255\246\346\240\241logo.png" "b/image/0.\345\255\246\346\240\241logo.png" new file mode 100644 index 0000000000000000000000000000000000000000..157ba2f4350b7844e328b7443ac3b969e44a7b0d Binary files /dev/null and "b/image/0.\345\255\246\346\240\241logo.png" differ diff --git a/static/README.md b/static/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/static/test/README.md b/static/test/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/system/README.md b/system/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391