ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

ตัวค้นหาข้อบกพร่อง - ออนไลน์ในคลาวด์

เรียกใช้โปรแกรมค้นหาข้อบกพร่องในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือตัวค้นหาข้อบกพร่องของคำสั่งที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


ค้นหาข้อบกพร่อง - ค้นหาข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้น ("ฮิต") ในซอร์สโค้ด

เรื่องย่อ


ตัวค้นหาข้อบกพร่อง [--ช่วยด้วย|-h] [--รุ่น] [--รายการ]
[--allowlink] [--followdotdir] [--nolink]
[--แพทช์=ชื่อไฟล์|-P ชื่อไฟล์]
[--อินพุต|-I] [ --ระดับต่ำสุด=X | -m X ] [--ผลบวกลวง|-F]
[--ไม่เคยละเว้น|-n]
[--regex=รูปแบบ | -e รูปแบบ]
[--บริบท|-c] [--คอลัมน์|-C] [--ข้อมูลเท่านั้น|-D] [--html|-H] [--ทันที|-i]
[--แถวเดียว|-S] [--ละเว้น] [--เงียบ|-Q]
[--loadhitlist=F] [--savehitlist=F] [--ความแตกต่าง=F]
[--] [ แหล่ง รหัส ไฟล์ or แหล่ง ราก ไดเรกทอรี ]+

DESCRIPTION


Flawfinder ค้นหาผ่านซอร์สโค้ด C/C++ เพื่อค้นหาข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้น ถึง
เรียกใช้โปรแกรมค้นหาข้อบกพร่อง เพียงระบุรายการไดเรกทอรีหรือไฟล์ของโปรแกรมค้นหาข้อบกพร่อง สำหรับแต่ละไดเร็กทอรี
กำหนด ไฟล์ทั้งหมดที่มีนามสกุลไฟล์ C/C++ ในไดเร็กทอรีนั้น (และของมัน
ไดเรกทอรีย่อยแบบเรียกซ้ำ) จะถูกตรวจสอบ ดังนั้นสำหรับโครงการส่วนใหญ่ เพียงแค่ให้
ค้นหาข้อบกพร่อง ชื่อของไดเร็กทอรีระดับบนสุดของซอร์สโค้ด (ใช้ ``.'' สำหรับไฟล์ปัจจุบัน
ไดเรกทอรี) และโปรแกรมแก้ไขข้อบกพร่องจะตรวจสอบซอร์สโค้ด C/C++ ทั้งหมดของโปรเจ็กต์ ถ้าคุณ
แค่อยากมี การเปลี่ยนแปลง ตรวจทานแล้ว บันทึกความแตกต่างแบบรวมของการเปลี่ยนแปลงเหล่านั้น (สร้างโดย GNU
"diff -u" หรือ "svn diff" หรือ "git diff") ในไฟล์แพตช์และใช้ตัวเลือก --patch (-P)

Flawfinder จะสร้างรายการ ``ฮิต'' (ข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้น) จัดเรียงตามความเสี่ยง NS
แสดง Hit ที่เสี่ยงที่สุดก่อน ระดับความเสี่ยงจะแสดงอยู่ในวงเล็บเหลี่ยมและแตกต่างกันไป
จาก 0 เสี่ยงน้อยมาก เป็น 5 เสี่ยงมาก ระดับความเสี่ยงนี้ไม่ได้ขึ้นอยู่กับ .เท่านั้น
ฟังก์ชัน แต่กับค่าของพารามิเตอร์ของฟังก์ชัน ตัวอย่างเช่น ค่าคงที่
สตริงมักจะมีความเสี่ยงน้อยกว่าสตริงที่แปรผันอย่างสมบูรณ์ในหลายบริบทและในเหล่านั้น
บริบทการโจมตีจะมีระดับความเสี่ยงที่ต่ำกว่า Flawfinder รู้เกี่ยวกับ gettext (ทั่วไป
ห้องสมุดสำหรับโปรแกรมสากล) และจะปฏิบัติต่อสตริงคงที่ที่ส่งผ่าน
gettext ราวกับว่ามันเป็นสตริงคงที่ ซึ่งจะช่วยลดจำนวนการเข้าชมที่ผิดพลาดใน
โปรแกรมที่เป็นสากล Flawfinder จะทำสิ่งเดียวกันกับ _T() และ
_TEXT() มาโคร Microsoft ทั่วไปสำหรับจัดการโปรแกรมที่เป็นสากล Flawfinder
ละเว้นข้อความส่วนใหญ่ในความคิดเห็นและสตริงอย่างถูกต้อง โดยปกติโปรแกรมค้นหาข้อบกพร่องจะแสดงทั้งหมด
Hit ที่มีระดับความเสี่ยงอย่างน้อย 1 แต่คุณสามารถใช้ตัวเลือก --minlevel เพื่อแสดงเท่านั้น
ฮิตด้วยระดับความเสี่ยงที่สูงขึ้นหากคุณต้องการ คำอธิบาย Hit ยังทราบ Common . ที่เกี่ยวข้อง
ตัวระบุจุดอ่อน (CWE) ในวงเล็บตามที่อธิบายด้านล่าง Flawfinder
เป็นทางการ CWE-Compatible

ไม่ใช่ทุกการโจมตีจะเป็นช่องโหว่ด้านความปลอดภัย และไม่ใช่ทุกช่องโหว่ด้านความปลอดภัย
จำเป็นต้องพบ อย่างไรก็ตาม ตัวค้นหาข้อบกพร่องสามารถช่วยในการค้นหาและกำจัด
ช่องโหว่ด้านความปลอดภัย วิธีทั่วไปในการใช้โปรแกรมค้นหาจุดบกพร่องคือการใช้โปรแกรมค้นหาจุดบกพร่องกับ . ก่อน
ชุดซอร์สโค้ดและตรวจสอบรายการที่มีความเสี่ยงสูงสุด จากนั้นใช้ --inputs เพื่อตรวจสอบ
ตำแหน่งอินพุต และตรวจสอบให้แน่ใจว่ามีเพียงค่าอินพุตที่ถูกกฎหมายและปลอดภัยเท่านั้น
ยอมรับจากผู้ใช้ที่ไม่น่าเชื่อถือ

เมื่อคุณตรวจสอบโปรแกรมแล้ว คุณสามารถทำเครื่องหมายบรรทัดซอร์สโค้ดที่ใช้งานได้จริง แต่
ทำให้เกิดคำเตือนปลอมเพื่อที่ผู้ตำหนิจะได้หยุดบ่นเกี่ยวกับพวกเขา เพื่อทำเครื่องหมาย
บรรทัดเพื่อให้คำเตือนเหล่านี้ถูกระงับ ใส่ความคิดเห็นที่มีรูปแบบพิเศษบน
บรรทัดเดียวกัน (หลังซอร์สโค้ด) หรือทั้งหมดในบรรทัดก่อนหน้า ความคิดเห็น
ต้องมีหนึ่งในสองรูปแบบต่อไปนี้:

· // Flawfinder: ละเว้น

· /* Flawfinder: ละเว้น */

เพื่อประโยชน์ในการใช้งานร่วมกันได้ คุณสามารถแทนที่ "Flawfinder:" ด้วย "ITS4:" หรือ "RATS:" ในสิ่งเหล่านี้ได้
ความคิดเห็นที่มีรูปแบบพิเศษ เนื่องจากเป็นไปได้ว่าบรรทัดดังกล่าวไม่ถูกต้อง คุณสามารถใช้
ตัวเลือก --neverignore ซึ่งทำให้ตัวค้นหาข้อผิดพลาดไม่เคยละเลยบรรทัดใด ๆ ไม่ว่าจะเกิดอะไรขึ้น
คำสั่งความคิดเห็นบอกว่า (ทำให้เกิดความสับสนมากขึ้น --neverignore ละเว้นการละเว้น)

Flawfinder ใช้ฐานข้อมูลภายในที่เรียกว่า ``กฎเกณฑ์''; ชุดกฎระบุ
ฟังก์ชันที่เป็นสาเหตุทั่วไปของข้อบกพร่องด้านความปลอดภัย ชุดกฎมาตรฐานประกอบด้วยชุดใหญ่
จำนวนปัญหาที่อาจเกิดขึ้นที่แตกต่างกัน รวมทั้งปัญหาทั่วไปที่อาจส่งผลกระทบใด ๆ
โปรแกรม C/C++ รวมถึงฟังก์ชันที่คล้าย Unix และ Windows จำนวนหนึ่งที่
มีปัญหาโดยเฉพาะ ตัวเลือก --listrules รายงานรายการกฎปัจจุบันและ
ระดับความเสี่ยงเริ่มต้นของพวกเขา ดังที่กล่าวไว้ข้างต้น ทุกข้อบกพร่องด้านความปลอดภัยที่อาจเกิดขึ้นในข้อที่ระบุ
ไฟล์ซอร์สโค้ด (ตรงกับรายการในชุดกฎ) เรียกว่า ``hit'' และชุดของ
ฮิตที่พบในระหว่างการรันโปรแกรมใด ๆ โดยเฉพาะเรียกว่า ``รายการฮิต'' ฮิตลิสต์
สามารถบันทึกได้ (โดยใช้ --savehitlist) โหลดซ้ำเพื่อแสดงซ้ำ (โดยใช้ --loadhitlist) และ
คุณสามารถแสดงเฉพาะ Hit ที่แตกต่างจากการวิ่งอื่น (โดยใช้ --diffhitlist)

Flawfinder เป็นเครื่องมือง่ายๆ ซึ่งนำไปสู่ข้อดีและข้อเสียพื้นฐานบางประการ Flawfinder ทำงาน
โดยการทำ tokenization คำศัพท์อย่างง่าย (ข้ามความคิดเห็นและสตริง tokenizing อย่างถูกต้อง)
กำลังมองหาโทเค็นที่ตรงกับฐานข้อมูล (โดยเฉพาะเพื่อค้นหาการเรียกใช้ฟังก์ชัน)
Flawfinder จึงคล้ายกับ RATS และ ITS4 ซึ่งใช้ tokenization คำศัพท์อย่างง่ายเช่นกัน
จากนั้น Flawfinder จะตรวจสอบข้อความของพารามิเตอร์ฟังก์ชันเพื่อประเมินความเสี่ยง ไม่เหมือน
เครื่องมือต่างๆ เช่น เฝือก แฟล็กคำเตือนของ gcc และเสียงดังกราว ตัวค้นหาจุดบกพร่องทำ ไม่ ใช้หรือมี
เข้าถึงข้อมูลเกี่ยวกับการควบคุมการไหล การไหลของข้อมูล หรือประเภทข้อมูลเมื่อค้นหา
ช่องโหว่ที่อาจเกิดขึ้นหรือการประเมินระดับความเสี่ยง ดังนั้นตัวค้นหาข้อบกพร่องจะ
จำเป็นต้องสร้างผลบวกที่ผิดพลาดมากมายสำหรับช่องโหว่และไม่สามารถรายงานได้มากมาย
ช่องโหว่ ในทางกลับกัน โปรแกรมค้นหาข้อบกพร่องสามารถค้นหาช่องโหว่ในโปรแกรมที่
ไม่สามารถสร้างหรือเชื่อมโยงไม่ได้ มักจะสามารถทำงานร่วมกับโปรแกรมที่ไม่สามารถทำได้
รวบรวม (อย่างน้อยโดยเครื่องมือของผู้ตรวจสอบ) Flawfinder ยังไม่สับสนโดย
คำจำกัดความของมาโครและสิ่งแปลกประหลาดอื่นๆ ที่เครื่องมือที่ซับซ้อนกว่ามีปัญหา
Flawfinder ยังมีประโยชน์ในการแนะนำง่ายๆ เกี่ยวกับเครื่องมือวิเคราะห์สแตติกใน
ทั่วไป เนื่องจากเป็นการเริ่มใช้งานที่ง่ายและเข้าใจง่าย

ชื่อไฟล์ใด ๆ ที่ระบุในบรรทัดคำสั่งจะถูกตรวจสอบ (แม้ว่าจะไม่มีชื่อปกติ
นามสกุลไฟล์ C/C++); ดังนั้นคุณสามารถบังคับให้โปรแกรมค้นหาข้อบกพร่องตรวจสอบไฟล์ใด ๆ ที่คุณ
ความต้องการ. ในขณะที่ค้นหาไดเร็กทอรีแบบเรียกซ้ำ ตัวค้นหาข้อบกพร่องจะเปิดขึ้นและตรวจสอบเท่านั้น
ไฟล์ปกติที่มีนามสกุลไฟล์ C/C++ Flawfinder สันนิษฐานว่าไฟล์เป็น
ไฟล์ C/C++ หากมีนามสกุล ".c", ".h", ".ec", ".ecp", ".pgc", ".C", ".cpp",
".CPP", ".cxx", ".cc", ".CC", ".pcc", ".hpp" หรือ ".H" ชื่อไฟล์ ``-'' หมายถึง
อินพุตมาตรฐาน เพื่อป้องกันปัญหาด้านความปลอดภัยไฟล์พิเศษ (เช่นไฟล์พิเศษของอุปกรณ์
และไปป์ที่มีชื่อ) จะถูกข้ามเสมอ และโดยค่าเริ่มต้น ลิงก์สัญลักษณ์จะถูกข้าม (
--allowlink ตัวเลือกตามลิงก์สัญลักษณ์)

หลังจากรายการฮิตเป็นบทสรุปโดยย่อของผลลัพธ์ (ใช้ -D เพื่อลบสิ่งนี้
ข้อมูล). จะแสดงจำนวนครั้ง เส้นที่วิเคราะห์ (ตามที่รายงานโดย wc -l) และ
เส้นแหล่งที่มาทางกายภาพของรหัส (SLOC) ที่วิเคราะห์ SLOC แบบฟิสิคัลเป็นแบบ non-blank, non-
บรรทัดความคิดเห็น จากนั้นจะแสดงจำนวนครั้งในแต่ละระดับ โปรดทราบว่าจะมี
ไม่เคยถูกโจมตีในระดับที่ต่ำกว่าระดับต่ำสุด (1 โดยค่าเริ่มต้น) ดังนั้น "[0] 0 [1] 9"
หมายความว่าที่ระดับ 0 มีการรายงานการโจมตี 0 ครั้ง และที่ระดับ 1 มี 9 ครั้ง
รายงาน ถัดไปจะแสดงจำนวน Hit ที่ระดับที่กำหนดหรือสูงกว่านั้น (ดังนั้นระดับ 3+
มีผลรวมของจำนวนการโจมตีที่ระดับ 3, 4 และ 5) ดังนั้น รายการของ "[0+] 37"
แสดงว่าที่ระดับ 0 ขึ้นไปมี 37 ฮิต (รายการ 0+ จะเหมือนเดิมเสมอ
ตามหมายเลข "ฮิต" ด้านบน) จำนวนครั้งต่อ KSLOC จะแสดงต่อไป นี่คือแต่ละ "ระดับหรือ
สูงกว่า" คูณด้วย 1000 และหารด้วย SLOC จริง หาก symlink เป็น
ข้ามไป จำนวนเหล่านั้นจะถูกรายงาน หากถูกระงับ (ใช้ปุ่ม "ละเว้น"
คำสั่งในความคิดเห็นของซอร์สโค้ดตามที่อธิบายไว้ข้างต้น) จำนวนที่ถูกระงับจะถูกรายงาน
ระดับความเสี่ยงขั้นต่ำที่จะรวมไว้ในรายงานจะแสดงขึ้น โดยค่าเริ่มต้นนี่คือ1
(ใช้ --minlevel เพื่อเปลี่ยนแปลงสิ่งนี้) สรุปจบลงด้วยการเตือนความจำที่สำคัญ: ไม่ใช่ทุกการโจมตี
จำเป็นต้องมีช่องโหว่ด้านความปลอดภัย และอาจมีช่องโหว่ด้านความปลอดภัยอื่นๆ อีกด้วย
ไม่ได้รายงานโดยเครื่องมือ

Flawfinder เปิดตัวภายใต้ลิขสิทธิ์ GNU GPL เวอร์ชัน 2 หรือใหม่กว่า (GPLv2+)

Flawfinder ทำงานคล้ายกับโปรแกรมอื่น ITS4 ซึ่งไม่ใช่โอเพ่นซอร์สอย่างสมบูรณ์
ซอฟต์แวร์ (ตามคำจำกัดความของโอเพ่นซอร์ส) หรือซอฟต์แวร์เสรี (ตามที่กำหนดโดย
มูลนิธิซอฟต์แวร์เสรี) ผู้เขียน Flawfinder ไม่เคยเห็นซอร์สโค้ดของ ITS4

โดยย่อ การสอน


ต่อไปนี้คือตัวอย่างสั้นๆ เกี่ยวกับวิธีใช้ตัวค้นหาจุดบกพร่อง ลองนึกภาพว่าคุณมี C/C++
ซอร์สโค้ดสำหรับบางโปรแกรมที่ชื่อ xyzzy (ซึ่งคุณอาจหรืออาจไม่ได้เขียน) และ
คุณกำลังค้นหาช่องโหว่ด้านความปลอดภัย (เพื่อให้คุณแก้ไขได้ก่อนลูกค้า
พบจุดอ่อน) สำหรับบทช่วยสอนนี้ ฉันจะถือว่าคุณกำลังใช้ Unix-
เช่น ระบบ เช่น Linux, OpenBSD หรือ MacOS X

หากซอร์สโค้ดอยู่ในไดเร็กทอรีย่อยชื่อ xyzzy คุณอาจเริ่มต้นด้วยการเปิด a
หน้าต่างข้อความและการใช้การตั้งค่าเริ่มต้นของโปรแกรมค้นหาจุดบกพร่อง เพื่อวิเคราะห์โปรแกรมและรายงาน a
รายการที่จัดลำดับความสำคัญของช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้น (``น้อยกว่า'' เพียงทำให้แน่ใจว่า
ผลลัพธ์อยู่บนหน้าจอ):
ค้นหาข้อบกพร่อง xyzzy | น้อย

ณ จุดนี้คุณจะเห็นรายการจำนวนมาก แต่ละรายการมีชื่อไฟล์ a
โคลอน, หมายเลขบรรทัด, ระดับความเสี่ยงในวงเล็บ (โดยที่ 5 มีความเสี่ยงมากที่สุด), หมวดหมู่,
ชื่อของฟังก์ชัน และคำอธิบายว่าเหตุใดโปรแกรมค้นหาข้อบกพร่องจึงคิดว่าบรรทัดนั้นเป็น a
ช่องโหว่ โดยทั่วไปแล้ว Flawfinder จะจัดเรียงตามระดับความเสี่ยง โดยแสดงรายการที่เสี่ยงที่สุดก่อน
หากคุณมีเวลาจำกัด อาจเป็นการดีที่สุดที่จะเริ่มทำงานกับสิ่งของที่เสี่ยงที่สุดและ
ต่อไปจนกว่าคุณจะหมดเวลา หากคุณต้องการจำกัดการแสดงความเสี่ยงด้วย a . เท่านั้น
ระดับความเสี่ยงที่แน่นอนหรือสูงกว่า ใช้ตัวเลือก --minlevel หากคุณได้รับ
จำนวนบวกที่ผิดพลาดเป็นพิเศษเนื่องจากชื่อตัวแปรดูเหมือนอันตราย
ชื่อฟังก์ชัน ใช้ตัวเลือก -F เพื่อลบรายงานเกี่ยวกับพวกเขา ถ้าไม่เข้าใจ
ข้อความแสดงข้อผิดพลาด โปรดดูเอกสารเช่น การเขียน ปลอดภัย โปรแกรม for ลินุกซ์ และ
ยูนิกซ์ วิธีทำhttp://www.dwheeler.com/secure-programs⟩ ที่ http://www.dwheeler.com/secure-
โปรแกรมที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับการเขียนโปรแกรมที่ปลอดภัย

เมื่อคุณระบุปัญหาและเข้าใจแล้ว คุณสามารถแก้ไขได้ บางครั้งคุณอาจ
ต้องการวิเคราะห์ซ้ำทั้งสองเพราะหมายเลขบรรทัดจะเปลี่ยน และ เพื่อให้แน่ใจว่า
ว่ารหัสใหม่ยังไม่แนะนำช่องโหว่ที่แตกต่างกัน

หากคุณได้พิจารณาแล้วว่าบางบรรทัดไม่ใช่ปัญหาจริงๆ และคุณแน่ใจแล้ว คุณสามารถ
แทรกก่อนหรือบนบรรทัดที่ละเมิดความคิดเห็นเช่น
/* Flawfinder: ละเว้น */
เพื่อไม่ให้ปรากฏในผลงาน

เมื่อคุณทำเสร็จแล้ว คุณควรกลับไปค้นหาอินพุตของโปรแกรมเพื่อทำ
ตรวจสอบให้แน่ใจว่าโปรแกรมกรองอินพุตที่ไม่น่าเชื่อถืออย่างเข้มงวด เครื่องหาข้อบกพร่องสามารถ
ระบุอินพุตของโปรแกรมจำนวนมากโดยใช้ตัวเลือก --inputs ดังนี้:
ตัวค้นหาข้อบกพร่อง --inputs xyzzy

Flawfinder สามารถทำงานร่วมกับโปรแกรมแก้ไขข้อความและสภาพแวดล้อมการพัฒนาแบบบูรณาการได้ดี
ดูตัวอย่างสำหรับข้อมูลเพิ่มเติม

Flawfinder มีตัวเลือกอื่น ๆ มากมาย รวมถึงตัวเลือกสำหรับสร้างเวอร์ชัน HTML ของ
เอาต์พุต (มีประโยชน์สำหรับจอภาพที่สวยกว่า) ส่วนถัดไปจะอธิบายตัวเลือกเหล่านั้นในmore
รายละเอียด

OPTIONS


Flawfinder มีตัวเลือกมากมายซึ่งสามารถจัดกลุ่มเป็นตัวเลือกที่ควบคุมตัวเองได้
เอกสาร, เลือกข้อมูลเข้า, เลือก Hit ที่จะแสดง, เลือกรูปแบบผลลัพธ์,
และดำเนินการจัดการรายการยอดนิยม Flawfinder รองรับไวยากรณ์มาตรฐานที่กำหนดไว้ใน
POSIX (ฉบับที่ 7, 2013 Edition) ส่วน ``ข้อตกลงยูทิลิตี้'' นอกจากนี้ยังรองรับ GNU
ตัวเลือกแบบยาว (ตัวเลือกรูปแบบขีดสองขีด --ตัวเลือก) ตามที่กำหนดไว้ใน GNU C ห้องสมุด
อ้างอิง ด้วยมือ ``โปรแกรมอาร์กิวเมนต์ Syntax Conventions'' และ GNU การเข้ารหัส มาตรฐาน
``มาตรฐานสำหรับอินเทอร์เฟซบรรทัดคำสั่ง'' สามารถระบุอาร์กิวเมนต์ตัวเลือกแบบยาวได้เป็น
``--name=value'' หรือ ``-name value'' บางตัวเลือกสามารถเข้าถึงได้โดยใช้ more
อนุสัญญาตัวเลือกยาวของ GNU ที่อ่านได้; ตัวเลือกทั่วไปยังรองรับโดยผู้เฒ่า
อนุสัญญาตัวเลือกตัวอักษรเดียว

เอกสาร
--ช่วยด้วย

-h แสดงข้อมูลการใช้งาน (ช่วยเหลือ)

--รุ่น แสดง (เพียง) หมายเลขเวอร์ชันและออก

--รายการ ระบุเงื่อนไข (โทเค็น) ที่กระตุ้นให้มีการตรวจสอบเพิ่มเติม ความเสี่ยงในการผิดนัด
ระดับและคำเตือนเริ่มต้น (รวมถึงตัวระบุ CWE if
บังคับ) แยกแท็บทั้งหมด คำเหล่านี้เป็นชื่อของ
ฟังก์ชั่นที่เป็นอันตราย โปรดทราบว่าระดับความเสี่ยงที่รายงานและคำเตือนสำหรับบางคน
รหัสเฉพาะอาจแตกต่างไปจากค่าเริ่มต้น ขึ้นอยู่กับว่าคำคืออะไร
ใช้แล้ว. รวมกับ -D หากคุณไม่ต้องการส่วนหัวปกติ Flawfinder
เวอร์ชัน 1.29 เปลี่ยนตัวคั่นจากช่องว่างเป็นแท็บ และเพิ่มค่าเริ่มต้น
ฟิลด์คำเตือน

การเลือก อินพุต ข้อมูล
--allowlink อนุญาตให้ใช้ลิงก์สัญลักษณ์ โดยปกติลิงก์สัญลักษณ์จะถูกข้าม อย่า
ใช้ตัวเลือกนี้หากคุณกำลังวิเคราะห์รหัสโดยผู้อื่น ผู้โจมตีสามารถทำได้หลายอย่าง
สิ่งที่ทำให้เกิดปัญหาสำหรับการวิเคราะห์โดยเปิดใช้งานตัวเลือกนี้ สำหรับ
ตัวอย่าง ผู้โจมตีสามารถแทรกลิงก์สัญลักษณ์ไปยังไฟล์เช่น / etc / passwd
(ข้อมูลรั่วไหลเกี่ยวกับไฟล์) หรือสร้างวนเป็นวงกลม ซึ่งจะ
ทำให้โปรแกรมค้นหาข้อบกพร่องทำงาน ``ตลอดไป' ปัญหาอื่นในการเปิดใช้สิ่งนี้
ตัวเลือกคือถ้าไฟล์เดียวกันถูกอ้างอิงหลายครั้งโดยใช้สัญลักษณ์
ลิงก์จะถูกวิเคราะห์หลายครั้ง (และรายงานหลายครั้ง)
โปรดทราบว่าโปรแกรมค้นหาข้อบกพร่องมีการป้องกันลิงก์สัญลักษณ์อยู่แล้ว
ไปยังไฟล์ประเภทพิเศษ เช่น ประเภทไฟล์อุปกรณ์ (เช่น /dev/zero หรือ
C:\mystuff\com1). โปรดทราบว่าสำหรับโปรแกรมค้นหาข้อบกพร่องเวอร์ชัน 1.01 และก่อนหน้านี้ นี่คือ
ค่าเริ่มต้น

--followdotdir
ป้อนไดเร็กทอรีที่มีชื่อขึ้นต้นด้วย "." โดยปกติไดเร็กทอรีดังกล่าวคือ
ละเว้น เนื่องจากโดยปกติแล้วจะมีการควบคุมเวอร์ชันข้อมูลส่วนตัว (เช่น
.git/ หรือ .svn/), การกำหนดค่า และอื่นๆ

--nolink ละเลย ในอดีตสิ่งนี้ปิดการใช้งานตามลิงก์สัญลักษณ์ พฤติกรรมนี้
ตอนนี้เป็นค่าเริ่มต้น

--แพทช์=ไฟล์แพตช์

-P ไฟล์แพตช์
ตรวจสอบไฟล์หรือไดเร็กทอรีที่เลือก แต่รายงานเฉพาะรายการในบรรทัดที่
ถูกเพิ่มหรือแก้ไขโดยไฟล์แพทช์ที่กำหนด ไฟล์แพตช์จะต้องอยู่ใน a
รูปแบบ diff แบบรวมที่รู้จัก (เช่นผลลัพธ์ของ GNU "diff -u old new"
"svn diff" หรือ "git diff [commit]") Flawfinder ถือว่าแพทช์มี
ถูกนำไปใช้กับไฟล์แล้ว ไฟล์แพตช์ยังสามารถรวมการเปลี่ยนแปลงกับ
ไฟล์ที่ไม่เกี่ยวข้อง (จะถูกละเว้น) หมายเลขบรรทัดที่ระบุใน
ไฟล์แพตช์ใช้เพื่อกำหนดบรรทัดที่มีการเปลี่ยนแปลง ดังนั้นหากคุณมี
แก้ไขไฟล์ตั้งแต่สร้างไฟล์แพตช์ สร้างไฟล์แพตช์ใหม่
แรก. ระวังชื่อไฟล์ของไฟล์ใหม่ที่ระบุในไฟล์แพตช์
ต้องตรงกันทุกประการ รวมทั้งตัวพิมพ์ใหญ่/ตัวพิมพ์เล็ก คำนำหน้าเส้นทาง และไดเรกทอรี
ตัวคั่น (\ เทียบกับ /) ยอมรับเฉพาะรูปแบบ diff แบบรวมเท่านั้น (GNU diff, svn
diff และเอาต์พุต git diff นั้นใช้ได้); หากคุณมีรูปแบบที่แตกต่างกันอีกครั้ง
สร้างใหม่ก่อน เฉพาะ Hit ที่เกิดขึ้นกับบรรทัดที่เปลี่ยนผลลัพธ์หรือ
มีการรายงานด้านบนและด้านล่างทันที ตัวเลือกนี้หมายถึง
-- ไม่เคยสนใจ

การเลือก ฮิต ไปยัง แสดง
--อินพุต

-I แสดงเฉพาะฟังก์ชันที่รับข้อมูลจากภายนอกโปรแกรม นี้ยังชุด
ระดับต่ำสุดถึง 0

--ระดับต่ำสุด=X

-m X กำหนดระดับความเสี่ยงขั้นต่ำเป็น X เพื่อรวมไว้ในรายการฮิต นี่อาจมาจาก 0 (``ไม่
ความเสี่ยง '') ถึง 5 (``ความเสี่ยงสูงสุด''); ค่าเริ่มต้นคือ 1

--ผลบวกลวง

-F อย่ารวม Hit ที่มีแนวโน้มว่าจะเป็นผลบวกลวง ปัจจุบันนี้หมายถึง
ชื่อฟังก์ชันนั้นจะถูกละเว้นหากไม่ได้ตามด้วย "(" และ that
การประกาศของอาร์เรย์อักขระจะไม่ถูกบันทึก ดังนั้นหากคุณใช้ตัวแปร
ชื่อว่า "เข้าถึง" ได้ทุกที่ สิ่งนี้จะขจัดการอ้างอิงถึงสามัญนี้
ตัวแปร. นี่ไม่ใช่ค่าเริ่มต้น เพราะสิ่งนี้จะเพิ่มโอกาสที่
พลาดเพลงฮิตที่สำคัญ โดยเฉพาะชื่อฟังก์ชันใน #define clauses and calls
ผ่านตัวชี้ฟังก์ชันจะพลาด

--ไม่เคยละเว้น

-n อย่าเพิกเฉยต่อปัญหาด้านความปลอดภัย แม้ว่าจะมีคำสั่ง ``เพิกเฉย'' ใน a
แสดงความคิดเห็น

--regexp=รูปแบบ

-e รูปแบบ
รายงานเฉพาะ Hit ที่มีข้อความที่ตรงกับรูปแบบนิพจน์ทั่วไป PATTERN
ตัวอย่างเช่น หากต้องการรายงานเฉพาะ Hit ที่มีข้อความ "CWE-120" ให้ใช้ ``--regex
CWE-120'' ชื่อแฟล็กตัวเลือกเหล่านี้เหมือนกับ grep

การเลือก เอาท์พุต รูปแบบ
--คอลัมน์

-C แสดงหมายเลขคอลัมน์ (รวมถึงชื่อไฟล์และหมายเลขบรรทัด) ของแต่ละ Hit
ซึ่งจะแสดงหลังหมายเลขบรรทัดโดยการเพิ่มโคลอนและหมายเลขคอลัมน์ใน
บรรทัด (อักขระตัวแรกในบรรทัดคือคอลัมน์ที่ 1) มีประโยชน์
สำหรับบรรณาธิการที่สามารถข้ามไปยังคอลัมน์ใดคอลัมน์หนึ่ง หรือเพื่อรวมเข้ากับคอลัมน์อื่นๆ ได้
เครื่องมือ (เช่น เครื่องมือเพื่อกรองผลบวกลวงเพิ่มเติม)

--บริบท

-c แสดงบริบท กล่าวคือ บรรทัดที่มี "hit"/ข้อบกพร่องที่อาจเกิดขึ้น โดยค่าเริ่มต้น
บรรทัดจะแสดงทันทีหลังคำเตือน

--ข้อมูลเท่านั้น

-D อย่าแสดงส่วนหัวและส่วนท้าย ใช้สิ่งนี้ร่วมกับ --quiet เพื่อดูเพียง
ข้อมูลนั้นเอง

--html

-H จัดรูปแบบผลลัพธ์เป็น HTML แทนที่จะเป็นข้อความธรรมดา

--ทันที

-i แสดงผลทันที (อย่ารอจนกว่าจะสิ้นสุด)

--แถวเดียว

-S แสดงเป็นเอาต์พุตข้อความบรรทัดเดียวสำหรับแต่ละ Hit มีประโยชน์สำหรับการโต้ตอบ
ด้วยเครื่องมือรวบรวม

--ละเว้น ละเว้นข้อมูลเวลา สิ่งนี้มีประโยชน์สำหรับการทดสอบการถดถอยของตัวค้นหาข้อบกพร่อง
เองเพื่อให้ผลลัพธ์ไม่แตกต่างกันขึ้นอยู่กับระยะเวลาการวิเคราะห์
ใช้เวลา

--เงียบ

-Q ไม่แสดงข้อมูลสถานะ (เช่น ไฟล์ใดที่กำลังตรวจสอบอยู่) ในขณะที่
การวิเคราะห์กำลังดำเนินอยู่

รายการฮิต การจัดการ
--savehitlist=F
บันทึก Hit ที่เกิดทั้งหมด ("รายการฮิต") ไปที่ F

--loadhitlist=F
โหลดรายการฮิตจาก F แทนการวิเคราะห์โปรแกรมต้นทาง การเตือน: Do ไม่
โหลดรายการฮิตจากแหล่งที่ไม่น่าเชื่อถือ (ด้วยเหตุผลด้านความปลอดภัย)

--ความแตกต่าง=F
แสดงเฉพาะ Hit (โหลดหรือวิเคราะห์แล้ว) ไม่ได้อยู่ใน F. F สันนิษฐานว่าสร้างขึ้น
ก่อนหน้านี้ใช้ --savehitlist การเตือน: Do ไม่ แยกรายการฮิตจากไม่น่าเชื่อถือ
แหล่งที่มา (ด้วยเหตุผลด้านความปลอดภัย) หากไม่มีตัวเลือก --loadhitlist
ซึ่งจะแสดง Hit ในไฟล์ซอร์สโค้ดที่วิเคราะห์แล้วซึ่งไม่ใช่
ที่เก็บไว้ก่อนหน้านี้ใน F. ถ้าใช้ร่วมกับ --loadhitlist นี่จะแสดง
ฮิตในรายการฮิตที่โหลดไม่อยู่ใน F. อัลกอริธึมที่แตกต่างคือ
ซึ่งอนุรักษ์นิยม; ฮิตจะถือว่า ``เหมือนกัน'' เท่านั้นหากพวกเขามีจำนวนเท่ากัน
ชื่อไฟล์ หมายเลขบรรทัด ตำแหน่งคอลัมน์ ชื่อฟังก์ชัน และระดับความเสี่ยง

ตัวอย่าง


ต่อไปนี้คือตัวอย่างต่างๆ ของการเรียกใช้โปรแกรมค้นหาข้อบกพร่อง ตัวอย่างแรกแสดงต่างๆ
ตัวเลือกบรรทัดคำสั่งง่ายๆ Flawfinder ได้รับการออกแบบมาให้ทำงานได้ดีกับโปรแกรมแก้ไขข้อความและ
สภาพแวดล้อมการพัฒนาแบบบูรณาการ ดังนั้นในตอนต่อไปจะแสดงวิธีการผสานรวมโปรแกรมค้นหาจุดบกพร่อง
เป็นกลุ่มและ emacs

ง่าย บรรทัดคำสั่ง ตัวเลือก
ตัวค้นหาข้อบกพร่อง /usr/src/linux-3.16
ตรวจสอบไฟล์ C/C++ ทั้งหมดในไดเร็กทอรี /usr/src/linux-3.16 และไฟล์ทั้งหมดของมัน
ไดเรกทอรีย่อย (เรียกซ้ำ) การรายงานเกี่ยวกับ Hit ทั้งหมดที่พบ โดยค่าเริ่มต้น
โปรแกรมค้นหาข้อบกพร่องจะข้ามลิงก์สัญลักษณ์และไดเรกทอรีที่มีชื่อขึ้นต้นด้วย
ช่วงเวลา

ตัวค้นหาข้อบกพร่อง --ระดับต่ำสุด=4 .
ตรวจสอบไฟล์ C/C++ ทั้งหมดในไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อย
(ซ้ำ); รายงานเฉพาะจุดอ่อนระดับ 4 ขึ้นไป (สองจุดสูงสุด
ระดับความเสี่ยง)

ตัวค้นหาข้อบกพร่อง --อินพุต ไมเดียร์
ตรวจสอบไฟล์ C/C++ ทั้งหมดใน mydir และไดเรกทอรีย่อย (แบบเรียกซ้ำ) และ
ฟังก์ชันรายงานที่รับอินพุต (เพื่อให้คุณมั่นใจได้ว่าจะกรองข้อมูล
ข้อมูลเข้าอย่างเหมาะสม)

ตัวค้นหาข้อบกพร่อง --ไม่เคยละเว้น ไมเดียร์
ตรวจสอบไฟล์ C/C++ ทั้งหมดในไดเร็กทอรี mydir และไดเร็กทอรีย่อย
รวมถึง Hit ที่ทำเครื่องหมายว่าละเว้นในความคิดเห็นของรหัส

ตัวค้นหาข้อบกพร่อง -คิวดี ไมเดียร์
ตรวจสอบ mydir และรายงานเฉพาะผลลัพธ์ที่แท้จริง (การลบส่วนหัวและ
ส่วนท้ายของเอาต์พุต) แบบฟอร์มนี้มีประโยชน์หากเอาต์พุตจะถูกวางลงใน
เครื่องมืออื่น ๆ สำหรับการวิเคราะห์เพิ่มเติม The -C (--คอลัมน์) และ -S (--บรรทัดเดียว)
ตัวเลือกยังมีประโยชน์หากคุณกำลังไพพ์ข้อมูลไปยังเครื่องมืออื่นๆ

ตัวค้นหาข้อบกพร่อง -QDSC ไมเดียร์
ตรวจสอบ mydir รายงานเฉพาะผลลัพธ์จริง (ไม่มีส่วนหัวหรือส่วนท้าย) แต่ละ
มีการรายงาน Hit ในหนึ่งบรรทัด และมีการรายงานหมายเลขคอลัมน์ นี่อาจเป็น
คำสั่งที่มีประโยชน์หากคุณป้อนเอาต์พุตตัวค้นหาข้อบกพร่องไปยังเครื่องมืออื่น

ตัวค้นหาข้อบกพร่อง --เงียบ --html --บริบท ไมเดียร์ > result.html
ตรวจสอบไฟล์ C/C++ ทั้งหมดในไดเร็กทอรี mydir และไดเร็กทอรีย่อย และ
สร้างผลลัพธ์ในรูปแบบ HTML การจัดการซอร์สโค้ด
ระบบ (เช่น SourceForge และ Savannah) อาจใช้คำสั่งแบบนี้

ตัวค้นหาข้อบกพร่อง --เงียบ --savehitlist save.hits *.[ช]
ตรวจสอบไฟล์ .c และ .h ทั้งหมดในไดเร็กทอรีปัจจุบัน อย่ารายงานเกี่ยวกับ
สถานะของการประมวลผลและบันทึกรายการฮิตที่เป็นผลลัพธ์ (ชุดของ Hit ทั้งหมด) ใน
ไฟล์ที่บันทึกไว้ hits

ตัวค้นหาข้อบกพร่อง --รายการที่แตกต่าง save.hits *.[ช]
ตรวจสอบไฟล์ .c และ .h ทั้งหมดในไดเร็กทอรีปัจจุบัน และแสดงไฟล์ฮิตที่
ไม่ได้อยู่ในไฟล์ที่บันทึกไว้แล้ว hits สามารถใช้เพื่อแสดงเฉพาะ
ช่องโหว่ ``ใหม่'' ในโปรแกรมที่แก้ไข หากไฟล์ที่บันทึกไว้ ถูกสร้างจาก
เวอร์ชันเก่าของโปรแกรมที่กำลังวิเคราะห์

ตัวค้นหาข้อบกพร่อง --ปะ ล่าสุด.แพทช์ .
ตรวจสอบไดเร็กทอรีปัจจุบันแบบเรียกซ้ำ แต่รายงานเฉพาะบรรทัดที่
เปลี่ยนหรือเพิ่มใน patchfile ที่ใช้แล้วที่ชื่อ ล่าสุด.แพทช์.

ตัวค้นหาข้อบกพร่อง --regex "CWE-120|CWE-126" src /
ตรวจสอบไดเรกทอรี สิ่งอำนวยความสะดวก วนซ้ำ แต่รายงานเฉพาะที่ CWE-120 หรือ
ใช้ CWE-126

กล่าวอ้าง ราคาเริ่มต้นที่ เป็นกลุ่ม
กลุ่มโปรแกรมแก้ไขข้อความมีกลไก "แก้ไขด่วน" ที่ทำงานได้ดีกับโปรแกรมค้นหาจุดบกพร่อง ดังนั้น
ที่คุณสามารถดูข้อความเตือนและข้ามไปยังซอร์สโค้ดที่เกี่ยวข้องได้อย่างง่ายดาย

ขั้นแรก คุณต้องเรียกใช้โปรแกรมค้นหาข้อบกพร่องเพื่อสร้างรายการเพลงฮิต และมีสองวิธีในการ
ทำเช่นนี้. วิธีแรกคือเริ่มตัวค้นหาข้อบกพร่องก่อนจากนั้นจึงเรียกใช้ (โดยใช้เอาต์พุต)
เป็นกลุ่ม วิธีที่สองคือการเริ่ม (หรือทำงานต่อ) กลุ่ม แล้วเรียกใช้โปรแกรมค้นหาข้อบกพร่อง
(โดยปกติมาจากวงใน).

สำหรับวิธีแรก ให้เรียกใช้โปรแกรมค้นหาข้อบกพร่องและเก็บผลลัพธ์ไว้ในไฟล์ FLAWFILE (เช่น "flawfile")
จากนั้นเรียกใช้ vim โดยใช้ตัวเลือก -q เช่นนี้: "vim -q faultfile" วิธีที่สอง
(เริ่มต้นตัวค้นหาข้อบกพร่องหลังจากเริ่มกลุ่ม) สามารถทำได้หลายวิธี หนึ่งคือการเรียกใช้
Flawfinder โดยใช้คำสั่งเชลล์ ":!flawfinder-command > FLAWFILE" จากนั้นทำตามนั้นด้วย
คำสั่ง ":cf FLAWFILE" อีกวิธีหนึ่งคือการจัดเก็บคำสั่งโปรแกรมค้นหาจุดบกพร่องในของคุณ
makefile (เช่น คำสั่งหลอก เช่น "ข้อบกพร่อง") แล้วเรียกใช้ ":make Flaw"

ในทุกกรณีเหล่านี้ คุณต้องมีคำสั่งเพื่อให้โปรแกรมค้นหาข้อบกพร่องทำงาน คำสั่งที่เป็นไปได้ซึ่ง
วางแต่ละ Hit ในบรรทัดของตัวเอง (-S) และลบส่วนหัวและส่วนท้ายที่อาจสับสน
มันคือ:

ตัวค้นหาข้อบกพร่อง -ตร .

ตอนนี้คุณสามารถใช้คำสั่งแก้ไขต่างๆ เพื่อดูผลลัพธ์ได้ คำสั่ง ":cn" แสดง
ตีต่อไป; ":cN" แสดง Hit ก่อนหน้า และ ":cr" ย้อนกลับไปยัง Hit แรก
":copen" จะเปิดหน้าต่างขึ้นเพื่อแสดงรายการฮิตปัจจุบัน เรียกว่า "quickfix
window"; ":cclose" จะปิดหน้าต่าง quickfix หากบัฟเฟอร์ในหน้าต่างที่ใช้มี
เปลี่ยนและข้อผิดพลาดอยู่ในไฟล์อื่น การข้ามไปยังข้อผิดพลาดจะล้มเหลว คุณต้อง
ตรวจสอบให้แน่ใจว่าหน้าต่างมีบัฟเฟอร์ซึ่งสามารถละทิ้งได้ก่อนที่จะพยายามข้ามไปที่a
ไฟล์ใหม่ พูดโดยบันทึกไฟล์ ซึ่งจะช่วยป้องกันข้อมูลสูญหายโดยไม่ได้ตั้งใจ

กล่าวอ้าง ราคาเริ่มต้นที่ emacs
emac ของโปรแกรมแก้ไขข้อความ / ระบบปฏิบัติการรวมถึง "โหมด grep" และ "โหมดคอมไพล์"
กลไกที่ทำงานได้ดีกับตัวค้นหาจุดบกพร่องทำให้ง่ายต่อการดูข้อความเตือนกระโดด
ไปยังซอร์สโค้ดที่เกี่ยวข้อง และแก้ไขปัญหาที่คุณพบ

ขั้นแรก คุณต้องเรียกใช้โปรแกรมค้นหาข้อบกพร่องเพื่อสร้างรายการข้อความเตือน คุณสามารถใช้ได้
"โหมด grep" หรือ "โหมดคอมไพล์" เพื่อสร้างรายการนี้ บ่อยครั้งที่ "โหมด grep" สะดวกกว่า
มันปล่อยให้โหมดคอมไพล์ไม่ถูกแตะต้องเพื่อให้คุณสามารถคอมไพล์ใหม่ได้อย่างง่ายดายเมื่อคุณเปลี่ยน
บางสิ่งบางอย่าง. อย่างไรก็ตาม หากคุณต้องการข้ามไปยังตำแหน่งคอลัมน์ที่แน่นอนของ Hit ให้คอมไพล์
โหมดอาจสะดวกกว่าเพราะ emacs สามารถใช้เอาต์พุตคอลัมน์ของตัวค้นหาจุดบกพร่องเป็น
ข้ามไปยังตำแหน่งที่ถูกต้องโดยตรงโดยไม่มีการกำหนดค่าพิเศษใดๆ

ในการใช้โหมด grep ให้ป้อนคำสั่ง "Mx grep" จากนั้นป้อนโปรแกรมค้นหาข้อบกพร่องที่ต้องการ
สั่งการ. ในการใช้โหมดคอมไพล์ ให้ป้อนคำสั่ง "คอมไพล์ Mx" แล้วป้อนคำสั่งที่จำเป็น
คำสั่งตัวค้นหาข้อบกพร่อง นี่คือคำสั่ง meta-key ดังนั้น คุณจะต้องใช้เมตาคีย์สำหรับ
แป้นพิมพ์ของคุณ (โดยปกติคือปุ่ม ESC) เช่นเดียวกับคำสั่ง emacs ทั้งหมด คุณจะต้อง
กด RETURN หลังจากพิมพ์ "grep" หรือ "คอมไพล์" ดังนั้นในหลาย ๆ ระบบ โหมด grep คือ
เรียกใช้โดยพิมพ์ ESC xgrep RETURN

จากนั้นคุณต้องป้อนคำสั่ง ลบสิ่งที่เคยมีมาก่อนหากจำเป็น NS
คำสั่งที่เป็นไปได้คือ:

ตัวค้นหาข้อบกพร่อง -SQDC .

คำสั่งนี้ทำให้ทุก Hit รายงานเป็นบรรทัดเดียว ซึ่งง่ายกว่ามากสำหรับเครื่องมือในการ
รับมือ. ตัวเลือกที่เงียบและข้อมูลเท่านั้นจะลบข้อมูลสถานะอื่น ๆ ที่ไม่จำเป็นสำหรับ
ใช้ภายใน emacs ระยะเวลาต่อท้ายหมายความว่าไดเร็กทอรีปัจจุบันและทั้งหมด
ผู้สืบทอดจะถูกค้นหาโค้ด C/C++ และวิเคราะห์หาข้อบกพร่อง

เมื่อคุณเรียกใช้โปรแกรมค้นหาข้อบกพร่องแล้ว คุณสามารถใช้ emacs เพื่อดูผลลัพธ์ได้ NS
คำสั่ง Cx ` (Control-x backtick) ไปที่ตำแหน่งซอร์สโค้ดเพื่อเตือนครั้งต่อไป
ข้อความ. Cu Cx ` (control-u control-x backtick) เริ่มต้นใหม่ตั้งแต่ต้น คุณสามารถ
เยี่ยมชมแหล่งที่มาสำหรับข้อความแสดงข้อผิดพลาดใด ๆ โดยย้ายไปยังข้อความตีนั้นใน
*compilation* buffer หรือ *grep* buffer และพิมพ์คีย์ return (หมายเหตุทางเทคนิค: ใน
บัฟเฟอร์การคอมไพล์ ซึ่งจะเรียกใช้คอมไพล์ goto-error) คุณยังสามารถคลิก Mouse-2
บนข้อความแสดงข้อผิดพลาด (คุณไม่จำเป็นต้องเปลี่ยนไปใช้บัฟเฟอร์ *คอมไพล์* ก่อน)

หากคุณต้องการใช้โหมด grep เพื่อข้ามไปยังคอลัมน์เฉพาะของ Hit คุณจะต้อง
กำหนดค่า emacs เป็นพิเศษให้ทำสิ่งนี้ เมื่อต้องการทำสิ่งนี้ ให้แก้ไขตัวแปร emacs "grep-regexp-
alist" ตัวแปรนี้บอก Emac ถึงวิธีแยกวิเคราะห์ผลลัพธ์ของคำสั่ง "grep" คล้ายกับ
ตัวแปร "compilation-error-regexp-alist" ซึ่งแสดงรายการข้อผิดพลาดในการรวบรวมรูปแบบต่างๆ
ข้อความ

กล่าวอ้าง ราคาเริ่มต้นที่ แบบบูรณาการ พัฒนาการ สภาพแวดล้อม (IDE)
สำหรับ IDE (อื่นๆ) ให้ศึกษาชุดปลั๊กอินของ IDE

ทั่วไป ความอ่อนแอ การแจงนับ (คพ.)


การแจงนับจุดอ่อนทั่วไป (CWE) คือ ``รายการหรือพจนานุกรมอย่างเป็นทางการของซอฟต์แวร์ทั่วไป
จุดอ่อนที่อาจเกิดขึ้นในสถาปัตยกรรม การออกแบบ โค้ด หรือการใช้งานของซอฟต์แวร์นั้น
สามารถนำไปสู่ช่องโหว่ด้านความปลอดภัยที่หาประโยชน์ได้... สร้างขึ้นเพื่อใช้เป็นภาษากลาง
เพื่ออธิบายจุดอ่อนด้านความปลอดภัยของซอฟต์แวร์'' (http://cwe.mitre.org/about/faq.html) สำหรับ
ข้อมูลเพิ่มเติมเกี่ยวกับ CWE ดู http://cwe.mitre.org.

Flawfinder รองรับ CWE และรองรับ CWE อย่างเป็นทางการ ตีคำอธิบายโดยทั่วไป
รวมตัวระบุจุดอ่อนทั่วไป (CWE) ที่เกี่ยวข้องในวงเล็บที่มี
เป็นที่รู้จักกันว่าเป็น CWE ที่เกี่ยวข้อง ตัวอย่างเช่น Hit ที่เกี่ยวข้องกับบัฟเฟอร์จำนวนมากกล่าวถึง
CWE-120 ตัวระบุ CWE สำหรับ ``คัดลอกบัฟเฟอร์โดยไม่ตรวจสอบขนาดของอินพุต'' (aka
``คลาสสิกบัฟเฟอร์ล้น'') ในบางกรณีอาจมีการระบุ CWE มากกว่าหนึ่งตัว
รายงาน HTML ยังรวมไฮเปอร์เท็กซ์ลิงก์ไปยังคำจำกัดความ CWE ที่โฮสต์ที่ MITRE ใน
ด้วยวิธีนี้ ตัวค้นหาข้อบกพร่องได้รับการออกแบบมาเพื่อให้ตรงตามข้อกำหนด CWE-Output

CWE จำนวนมากที่รายงานโดยโปรแกรมค้นหาข้อบกพร่องถูกระบุอยู่ในรายชื่อ 25 อันดับแรกของ CWE/SANS ปี 2011
(http://cwe.mitre.org/top25/). หลายคนจะต้องการค้นหา CWEs ในรายการนี้
เช่น CWE-120 (คลาสสิกบัฟเฟอร์ล้น) เมื่อโปรแกรมค้นหาข้อบกพร่องจับคู่กับ CWE ที่มากกว่า
ทั่วๆ ไปมากกว่า 25 อันดับแรก โดยจะแสดงรายการเป็นแบบทั่วไปมากกว่า:เจาะจงมากขึ้น (เช่น
CWE-119:CWE-120) โดยที่การแมปที่เกิดขึ้นจริงโดยทั่วไปแล้ว หากตัวค้นหาจุดบกพร่องแมปไปที่ more
รายการ CWE เฉพาะที่เป็นกรณีเฉพาะของรายการ 25 อันดับแรกจะอยู่ในรูปแบบ
top-25/เฉพาะเจาะจงมากขึ้น (เช่น CWE-362/CWE-367) โดยที่การทำแผนที่จริงมีความเฉพาะเจาะจงมากกว่า
รายการ CWE หากรายการเดียวกันจับคู่กับ CWE หลายรายการ CWE จะถูกคั่นด้วยเครื่องหมายจุลภาค
(สิ่งนี้มักเกิดขึ้นกับ CWE-20 การตรวจสอบอินพุตที่ไม่เหมาะสม) สิ่งนี้ทำให้การค้นหาง่ายขึ้น
CWE บางอย่าง

CWE เวอร์ชัน 2.7 (เผยแพร่เมื่อ 23 มิถุนายน 2014) ใช้สำหรับการทำแผนที่ CWE ในปัจจุบัน
การแมปจะเลือก CWE ที่เจาะจงที่สุดที่เครื่องมือสามารถกำหนดได้ ในทางทฤษฎี CWE . ส่วนใหญ่
องค์ประกอบความปลอดภัย (ลายเซ็น/รูปแบบที่เครื่องมือค้นหา) ในทางทฤษฎีอาจเป็น
แมปกับ CWE-676 (การใช้ฟังก์ชันที่อาจเป็นอันตราย) แต่การทำแผนที่ดังกล่าวจะไม่เป็น
มีประโยชน์. ดังนั้น จึงต้องการการแมปที่เจาะจงมากขึ้นเมื่อสามารถหาได้ Flawfinder
เป็นเครื่องมือวิเคราะห์คำศัพท์ จึงไม่มีความเฉพาะเจาะจงมากกว่า
การแมปที่ดำเนินการอยู่ในปัจจุบัน นอกจากนี้ยังหมายความว่าไม่ต้องการมาก
อัปเดตสำหรับสกุลเงินแผนที่ มันไม่มีข้อมูลเพียงพอที่จะปรับแต่งเป็น
ระดับ CWE โดยละเอียดที่การเปลี่ยนแปลง CWE โดยทั่วไปจะมีผล รายการตัวระบุ CWE
ถูกสร้างขึ้นโดยอัตโนมัติโดยใช้ "make show-cwes" ดังนั้นจึงมั่นใจได้ว่ารายการนี้
ถูกต้อง. โปรดรายงานปัญหาการทำแผนที่ CWE เป็นข้อบกพร่อง หากคุณพบ

Flawfinder อาจไม่พบช่องโหว่ แม้ว่าโปรแกรมค้นหาข้อบกพร่องจะครอบคลุมหนึ่งใน CWE . เหล่านี้
จุดอ่อน ที่กล่าวว่าโปรแกรมค้นหาข้อบกพร่องพบช่องโหว่ที่ระบุโดย CWE ที่ครอบคลุม
และจะไม่รายงานบรรทัดที่ไม่มีช่องโหว่ดังกล่าวในหลายกรณี ดังนั้น as
จำเป็นสำหรับเครื่องมือใด ๆ ที่ตั้งใจจะเข้ากันได้กับ CWE ตัวค้นหาข้อบกพร่องมีอัตราเท็จ
ผลบวกน้อยกว่า 100% และอัตราการลบลวงน้อยกว่า 100% Flawfinder เกือบ
รายงานทุกครั้งเมื่อพบการจับคู่กับองค์ประกอบความปลอดภัย CWE (ลายเซ็น/รูปแบบเป็น
กำหนดไว้ในฐานข้อมูล) แม้ว่าโครงสร้างที่คลุมเครือบางอย่างอาจทำให้ล้มเหลวได้ (ดู BUGS
ด้านล่าง)

Flawfinder สามารถรายงานเกี่ยวกับ CWE ต่อไปนี้ (นี่คือ CWE ที่ตัวค้นหาข้อบกพร่องครอบคลุม
``*'' ทำเครื่องหมายว่าอยู่ในรายการ 25 อันดับแรกของ CWE/SANS):

· CWE-20: การตรวจสอบอินพุตที่ไม่เหมาะสม

· CWE-22: การจำกัดชื่อพาธที่ไม่เหมาะสมไปยังไดเร็กทอรีที่ถูกจำกัด (``Path Traversal'')

· CWE-78: การวางตัวเป็นกลางอย่างไม่เหมาะสมขององค์ประกอบพิเศษที่ใช้ในคำสั่ง OS (``OS Command .)
ฉีด'')*

· CWE-119: การจำกัดการทำงานที่ไม่เหมาะสมภายในขอบเขตของบัฟเฟอร์หน่วยความจำ (a
parent ของ CWE-120* ดังนั้นจึงแสดงเป็น CWE-119:CWE-120)

· CWE-120: คัดลอกบัฟเฟอร์โดยไม่ตรวจสอบขนาดของอินพุต (``Classic Buffer Overflow'')*

· CWE-126: บัฟเฟอร์อ่านมากเกินไป

· CWE-134: สตริงรูปแบบที่ไม่สามารถควบคุมได้*

· CWE-190: จำนวนเต็มล้นหรือวนรอบ*

· CWE-250: การดำเนินการด้วยสิทธิพิเศษที่ไม่จำเป็น

· CWE-327: การใช้อัลกอริทึมการเข้ารหัสที่เสียหายหรือมีความเสี่ยง*

· CWE-362: การดำเนินการพร้อมกันโดยใช้ทรัพยากรที่ใช้ร่วมกันที่มีการซิงโครไนซ์ที่ไม่เหมาะสม
(``สภาพการแข่งขัน'')

· CWE-377: ไฟล์ชั่วคราวที่ไม่ปลอดภัย

· CWE-676: การใช้ฟังก์ชันที่อาจเป็นอันตราย*

· CWE-732: การอนุญาตที่ไม่ถูกต้องสำหรับทรัพยากรที่สำคัญ*

· CWE-785: การใช้ฟังก์ชันการจัดการเส้นทางโดยไม่มีบัฟเฟอร์ขนาดสูงสุด (ลูกของ
CWE-120* จึงแสดงเป็น CWE-120/CWE-785)

· CWE-807: การพึ่งพาปัจจัยการผลิตที่ไม่น่าเชื่อถือในการตัดสินใจด้านความปลอดภัย*

· CWE-829: การรวมฟังก์ชันการทำงานจาก Control Sphere ที่ไม่น่าเชื่อถือ*

คุณสามารถเลือกชุดย่อยของ CWE ที่ต้องการรายงานโดยใช้ตัวเลือก ``--regex'' (-e)
ตัวเลือกนี้ยอมรับนิพจน์ทั่วไป ดังนั้นคุณสามารถเลือก CWE ได้หลายแบบ เช่น ``--regex
"CWE-120|CWE-126"'' หากคุณเลือก CWE หลายรายการด้วย ``|'' ในบรรทัดคำสั่ง คุณจะ
โดยทั่วไปจะต้องอ้างอิงพารามิเตอร์ (เนื่องจาก ``|'' ที่ไม่ได้ใส่เครื่องหมายคำพูดคือสัญลักษณ์ไปป์)
Flawfinder ได้รับการออกแบบมาเพื่อให้ตรงตามข้อกำหนด CWE-Searchable

หากเป้าหมายของคุณคือการรายงานกลุ่มย่อยของ CWE ที่ระบุไว้ในไฟล์ ก็สามารถทำได้
บนระบบที่เหมือน Unix โดยใช้ตัวเลือก ``--regex'' aka ``-e'' ไฟล์จะต้องอยู่ใน
รูปแบบนิพจน์ทั่วไป ตัวอย่างเช่น ``flawfinder -e $(cat file1)'' จะรายงานเท่านั้น
ฮิตที่ตรงกับรูปแบบใน ``file1'' หาก file1 มี ``CWE-120|CWE-126'' ก็
จะรายงานเฉพาะ Hit ที่ตรงกับ CWE เหล่านั้นเท่านั้น

รายการองค์ประกอบความปลอดภัย CWE ทั้งหมด (ลายเซ็น/รูปแบบที่โปรแกรมค้นหาข้อบกพร่อง)
สามารถพบได้โดยใช้ตัวเลือก ``--listrules'' แต่ละบรรทัดแสดงรายการโทเค็นลายเซ็น
(โดยทั่วไปคือชื่อฟังก์ชัน) ที่อาจนำไปสู่การโจมตี ระดับความเสี่ยงเริ่มต้น และ
คำเตือนเริ่มต้น (ซึ่งรวมถึงตัวระบุ CWE เริ่มต้น) สำหรับวัตถุประสงค์ส่วนใหญ่นี่คือ
ก็เพียงพอแล้วหากคุณต้องการดูว่าองค์ประกอบความปลอดภัย CWE ใดจับคู่กับ CWE หรือ
ย้อนกลับ. ตัวอย่างเช่น หากต้องการดูลายเซ็น (ชื่อฟังก์ชัน) ส่วนใหญ่ที่จับคู่กับ
CWE-327 โดยไม่เห็นระดับความเสี่ยงเริ่มต้นหรือข้อความเตือนโดยละเอียด ให้เรียกใช้ ``flawfinder
--listrules | grep CWE-327 | ตัด -f1'' คุณยังสามารถดูโทเค็นได้โดยไม่ต้องแมป CWE
ด้วยวิธีนี้โดยเรียกใช้ ``flawfinder -D --listrules | grep -v CWE-'' อย่างไรก็ตาม ในขณะที่
--listrules แสดงรายการองค์ประกอบความปลอดภัย CWE ทั้งหมด แต่จะแสดงรายการการแมปเริ่มต้นจากCWE .เท่านั้น
องค์ประกอบความปลอดภัยสำหรับตัวระบุ CWE ไม่รวมถึงการปรับแต่งที่ตัวค้นหาข้อบกพร่อง
ใช้ (เช่น โดยการตรวจสอบพารามิเตอร์ของฟังก์ชัน)

หากคุณต้องการแผนที่ที่ละเอียดและแม่นยำระหว่างองค์ประกอบความปลอดภัย CWE และ CWE
ตัวระบุ ซอร์สโค้ดตัวค้นหาจุดบกพร่อง (รวมอยู่ในการแจกจ่าย) เป็นสถานที่ที่ดีที่สุด
สำหรับข้อมูลนั้น ข้อมูลรายละเอียดนี้เป็นที่สนใจของคนเพียงไม่กี่คนเป็นหลัก
ผู้ที่พยายามปรับแต่งการแมป CWE ของตัวค้นหาข้อบกพร่องหรือปรับแต่ง CWE โดยทั่วไป
ซอร์สโค้ดจัดทำเอกสารการจับคู่ระหว่างองค์ประกอบความปลอดภัยกับ CWE . ที่เกี่ยวข้อง
ตัวระบุและเป็นไฟล์ Python ไฟล์เดียว ชุดข้อมูล ``c_rules'' กำหนดกฎส่วนใหญ่
โดยอ้างอิงถึงฟังก์ชันที่อาจทำการปรับแต่งเพิ่มเติม คุณสามารถค้นหา
ชุดข้อมูลสำหรับชื่อฟังก์ชันเพื่อดูว่า CWE สร้างอะไรโดยค่าเริ่มต้น ถ้าพารามิเตอร์แรกคือ
ไม่ใช่ ``ปกติ'' นั่นคือชื่อของวิธี Python ที่ปรับแต่งซึ่งอาจเลือกที่แตกต่างกัน
CWE (ขึ้นอยู่กับข้อมูลเพิ่มเติม) ในทางกลับกัน คุณสามารถค้นหา ``CWE-number''
และค้นหาองค์ประกอบความปลอดภัย (ลายเซ็นหรือรูปแบบ) ที่อ้างถึงตัวระบุ CWE นั้น
สำหรับคนส่วนใหญ่ นี่เป็นมากกว่าที่พวกเขาต้องการ คนส่วนใหญ่เพียงต้องการสแกนของพวกเขา
ซอร์สโค้ดเพื่อค้นหาปัญหาอย่างรวดเร็ว

การรักษาความปลอดภัย


จุดรวมของเครื่องมือนี้คือการช่วยค้นหาช่องโหว่เพื่อให้สามารถแก้ไขได้
อย่างไรก็ตาม นักพัฒนาและผู้ตรวจสอบต้องรู้วิธีพัฒนาซอฟต์แวร์ที่ปลอดภัยเพื่อใช้สิ่งนี้
เครื่องมือเพราะไม่เช่นนั้น a คนโง่ กับ a เครื่องมือ is ยังคง a คนโง่. หนังสือของฉันที่
http://www.dwheeler.com/secure-programs อาจช่วย

อย่างมากที่สุด เครื่องมือนี้ควรเป็นส่วนเล็กๆ ของกระบวนการพัฒนาซอฟต์แวร์ที่ใหญ่ขึ้น
ออกแบบมาเพื่อกำจัดหรือลดผลกระทบของช่องโหว่ นักพัฒนาและผู้ตรวจสอบ
จำเป็นต้องรู้วิธีพัฒนาซอฟต์แวร์ที่ปลอดภัย และพวกเขาจำเป็นต้องนำความรู้นี้ไปใช้ในการลด
ความเสี่ยงของจุดอ่อนในครั้งแรก

เครื่องมือค้นหาช่องโหว่ที่แตกต่างกันมักจะพบช่องโหว่ที่แตกต่างกัน ดังนั้น คุณ
ควรใช้การตรวจสอบโดยเจ้าหน้าที่และเครื่องมือที่หลากหลาย เครื่องมือนี้สามารถช่วยค้นหาบางอย่างได้
ช่องโหว่แต่ไม่ได้หมายความว่าทั้งหมด

คุณควรวิเคราะห์ a . เสมอ สำเนา ของโปรแกรมต้นทางที่กำลังวิเคราะห์ ไม่ใช่ไดเร็กทอรี
ที่นักพัฒนาสามารถแก้ไขได้ในขณะที่โปรแกรมค้นหาข้อบกพร่องกำลังทำการวิเคราะห์อยู่ นี่คือ
โดยเฉพาะอย่างยิ่ง จริง หากคุณไม่ไว้วางใจผู้พัฒนาโปรแกรมที่กำลังวิเคราะห์โดยไม่จำเป็น
หากผู้โจมตีสามารถควบคุมไฟล์ได้ในขณะที่คุณกำลังวิเคราะห์ไฟล์ ผู้โจมตีอาจ
ย้ายไฟล์ไปรอบๆ หรือเปลี่ยนเนื้อหาเพื่อป้องกันการเปิดเผยปัญหาด้านความปลอดภัย
(หรือสร้างความประทับใจให้กับปัญหาที่ไม่มีอยู่จริง) หากคุณกังวลเรื่อง
โปรแกรมเมอร์ที่เป็นอันตราย คุณควรทำเช่นนี้ เพราะหลังจากการวิเคราะห์ คุณจะต้อง
ตรวจสอบว่ารหัสที่เรียกใช้ในท้ายที่สุดคือรหัสที่คุณวิเคราะห์ นอกจากนี้ อย่าใช้
--allowlink ตัวเลือกในกรณีดังกล่าว; ผู้โจมตีสามารถสร้างลิงก์สัญลักษณ์ที่เป็นอันตรายไปยังไฟล์ได้
นอกพื้นที่ซอร์สโค้ด (เช่น / etc / passwd).

ระบบการจัดการซอร์สโค้ด (เช่น SourceForge และ Savannah) ตกอยู่ในสิ่งนี้อย่างแน่นอน
หมวดหมู่; หากคุณกำลังดูแลระบบใดระบบหนึ่ง ให้คัดลอกหรือแตกไฟล์ลงใน .ก่อน
ไดเร็กทอรีแยกต่างหาก (ซึ่งผู้โจมตีไม่สามารถควบคุมได้) ก่อนเรียกใช้โปรแกรมค้นหาข้อบกพร่องหรือ
เครื่องมือวิเคราะห์โค้ดอื่นๆ

โปรดทราบว่าโปรแกรมค้นหาข้อบกพร่องจะเปิดเฉพาะไฟล์ ไดเร็กทอรี และสัญลักษณ์ (หากได้รับการร้องขอ) เท่านั้น
ลิงค์; มันจะไม่เปิดไฟล์ประเภทอื่นแม้ว่าจะมีการสร้างลิงก์สัญลักษณ์ไว้
สิ่งนี้จะตอบโต้ผู้โจมตีที่แทรกประเภทไฟล์ที่ผิดปกติลงในซอร์สโค้ด อย่างไรก็ตามสิ่งนี้
ใช้งานได้ก็ต่อเมื่อระบบไฟล์ที่วิเคราะห์ไม่สามารถแก้ไขได้โดยผู้โจมตีระหว่าง
การวิเคราะห์ตามที่แนะนำข้างต้น การป้องกันนี้ยังใช้ไม่ได้กับแพลตฟอร์ม Cygwin
น่าเสียดาย.

ระบบ Cygwin (การจำลอง Unix ที่ด้านบนของ Windows) มีปัญหาเพิ่มเติมหากตัวค้นหาข้อบกพร่อง
ใช้ในการวิเคราะห์โปรแกรมที่นักวิเคราะห์เชื่อถือไม่ได้ ปัญหาเกิดจากการออกแบบ
ข้อบกพร่องใน Windows (ที่สืบทอดมาจาก MS-DOS) บน Windows และ MS-DOS ชื่อไฟล์บางชื่อ
(เช่น ``com1'') ได้รับการปฏิบัติโดยอัตโนมัติโดยระบบปฏิบัติการเป็นชื่อของ
อุปกรณ์ต่อพ่วง และสิ่งนี้เป็นจริงแม้ว่าจะให้ชื่อพาธแบบเต็มก็ตาม ใช่ Windows และ MS-DOS
ออกแบบมาไม่ดีจริงๆ Flawfinder จัดการกับสิ่งนี้โดยตรวจสอบว่าระบบไฟล์คืออะไร
ออบเจ็กต์คือ จากนั้นเปิดเฉพาะไดเร็กทอรีและไฟล์ปกติเท่านั้น (และลิงก์สัญลักษณ์หากเปิดใช้งาน)
น่าเสียดาย วิธีนี้ใช้ไม่ได้กับ Cygwin; ใน Cygwin อย่างน้อยบางรุ่นในบางส่วน
เวอร์ชันของ Windows เพียงแค่พยายามตรวจสอบว่าไฟล์นั้นเป็นประเภทอุปกรณ์หรือไม่ อาจทำให้
โปรแกรมที่จะแขวน วิธีแก้ปัญหาคือลบหรือเปลี่ยนชื่อไฟล์ที่ตีความ
เป็นชื่ออุปกรณ์ก่อนทำการวิเคราะห์ ที่เรียกว่า ``ชื่อสงวน'' เหล่านี้คือ
CON, PRN, AUX, CLOCK$, NUL, COM1-COM9 และ LPT1-LPT9 ตามด้วยส่วนขยายตามต้องการ
(เช่น ``com1.txt'') ในไดเร็กทอรีใดๆ และไม่ว่าในกรณีใดๆ (Windows จะคำนึงถึงขนาดตัวพิมพ์)

Do ไม่ โหลดหรือแยกรายการฮิตจากแหล่งที่ไม่น่าเชื่อถือ พวกเขาจะดำเนินการโดยใช้
โมดูล Python pickle และโมดูล pickle ไม่ได้มีวัตถุประสงค์เพื่อความปลอดภัยจากความผิดพลาด
หรือข้อมูลที่สร้างมาเพื่อประสงค์ร้าย รายการฮิตที่เก็บไว้มีไว้สำหรับใช้ในภายหลังโดยคนเดียวกัน
ผู้ใช้ที่สร้างรายการฮิต ในบริบทนั้นข้อจำกัดนี้ไม่เป็นปัญหา

ใช้โปรแกรมค้นหาข้อบกพร่องออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    Phaser
    Phaser
    Phaser เป็นโปรแกรมเปิดที่รวดเร็ว ฟรี และสนุก
    ซอร์สเฟรมเวิร์กเกม HTML5 ที่นำเสนอ
    การแสดงผล WebGL และ Canvas ทั่ว
    เว็บเบราว์เซอร์เดสก์ท็อปและมือถือ เกม
    สามารถร่วม...
    ดาวน์โหลดเฟสเซอร์
  • 2
    เครื่องยนต์ VASSAL
    เครื่องยนต์ VASSAL
    VASSAL เป็นเอ็นจิ้นเกมสำหรับการสร้าง
    บอร์ดอิเล็กทรอนิกส์แบบดั้งเดิม
    และการ์ดเกม มันให้การสนับสนุนสำหรับ
    การเรนเดอร์ชิ้นส่วนเกมและการโต้ตอบ
    และ ...
    ดาวน์โหลด VASSAL Engine
  • 3
    OpenPDF - ทางแยกของ iText
    OpenPDF - ทางแยกของ iText
    OpenPDF เป็นไลบรารี Java สำหรับสร้าง
    และแก้ไขไฟล์ PDF ด้วย LGPL และ
    ใบอนุญาตโอเพ่นซอร์ส MPL OpenPDF คือ
    LGPL / MPL โอเพ่นซอร์สผู้สืบทอดของ iText
    แล้ว ...
    ดาวน์โหลด OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - ระบบอัตโนมัติ
    การวิเคราะห์ทางธรณีวิทยา - เป็นภูมิศาสตร์
    ซอฟต์แวร์ระบบสารสนเทศ (GIS) พร้อม
    ความสามารถอันยิ่งใหญ่สำหรับ geodata
    การประมวลผลและอนา...
    ดาวน์โหลด SAGA GIS
  • 5
    กล่องเครื่องมือสำหรับ Java/JTOpen
    กล่องเครื่องมือสำหรับ Java/JTOpen
    IBM Toolbox สำหรับ Java / JTOpen คือ
    ไลบรารีของคลาส Java ที่สนับสนุน
    ไคลเอนต์/เซิร์ฟเวอร์และโปรแกรมอินเทอร์เน็ต
    รุ่นไปยังระบบที่ใช้ OS/400,
    i5/โอเอส โอ...
    ดาวน์โหลดกล่องเครื่องมือสำหรับ Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (หรือ D3 สำหรับเอกสารที่ขับเคลื่อนด้วยข้อมูล)
    เป็นไลบรารี JavaScript ที่ช่วยให้คุณ
    เพื่อสร้างข้อมูลเชิงโต้ตอบแบบไดนามิก
    การแสดงภาพในเว็บเบราว์เซอร์ ด้วย D3
    คุณ...
    ดาวน์โหลด D3.js
  • เพิ่มเติม»

คำสั่ง Linux

  • 1
    อธิบดี
    อธิบดี
    abidiff - เปรียบเทียบ ABI ของไฟล์ ELF
    Abidiff เปรียบเทียบ Application Binary
    อินเทอร์เฟซ (ABI) ของสองไลบรารีที่ใช้ร่วมกัน
    ในรูปแบบเอลฟ์ มันเปล่งออกมาอย่างมีความหมาย
    รายงาน...
    เรียกใช้ abidiff
  • 2
    อาบิดวี
    อาบิดวี
    abidw - ทำให้เป็นอันดับ ABI ของ ELF
    ไฟล์ abidw อ่านไลบรารีที่ใช้ร่วมกันใน ELF
    จัดรูปแบบและปล่อยการแสดง XML
    ของ ABI ไปยังเอาต์พุตมาตรฐาน เดอะ
    ปล่อยออกมา ...
    วิ่งต่อไป
  • 3
    โคแพค2xml
    โคแพค2xml
    bibutils - การแปลงบรรณานุกรม
    ค่าสาธารณูปโภค ...
    เรียกใช้ copac2xml
  • 4
    ชาวอียิปต์โบราณ
    ชาวอียิปต์โบราณ
    copt - เครื่องมือเพิ่มประสิทธิภาพตาแมว SYSNOPIS:
    ไฟล์คอปต์ .. รายละเอียด: คอปต์คือไฟล์
    เครื่องมือเพิ่มประสิทธิภาพช่องมองสำหรับวัตถุประสงค์ทั่วไป มัน
    อ่านรหัสจากอินพุตมาตรฐานและ
    เขียน ...
    เรียกใช้ตำรวจ
  • 5
    Gather_stx_titles
    Gather_stx_titles
    Gather_stx_titles - รวบรวมชื่อเรื่อง
    ประกาศจากเอกสาร Stx ...
    เรียกใช้ Gather_stx_titles
  • 6
    ม้านั่ง Gatling
    ม้านั่ง Gatling
    ม้านั่ง - เกณฑ์มาตรฐาน http ...
    เรียกม้านั่ง Gatling
  • เพิ่มเติม»

Ad