İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

kusur bulucu - Bulutta Çevrimiçi

Kusur bulucuyu Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi öykünücüsü veya MAC OS çevrimiçi öykünücüsü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut kusur bulucudur.

Program:

ADI


kusur bulucu - kaynak koddaki olası güvenlik kusurlarını ("isabetler") sözcüksel olarak bulun

SİNOPSİS


kusur bulucu [--yardım et|-h] [--versiyon] [--listrüler]
[--allowlink] [--followdotdir] [--bağlantı yok]
[--yama=Dosya|-P Dosya]
[--girişler|-I] [ --min seviye=X | -m X ] [--yanlış pozitif|-F]
[--asla yoksayma|-n]
[--normal ifade=MODEL | -e MODEL]
[--bağlam|-c] [--sütunlar|-C] [--sadece veri|-D] [--html|-H] [--hemen|-i]
[--tek çizgi|-S] [--yok zaman] [--sessizlik|-Q]
[--loadhitlist=F] [--savehitlist=F] [--diffhitlist=F]
[--] [ kaynak kod dosya or kaynak kök rehber ]+

TANIM


Flawfinder, olası güvenlik kusurlarını arayan C/C++ kaynak kodunu araştırır. İle
kusur bulucuyu çalıştırın, kusur bulucuya dizinlerin veya dosyaların bir listesini verin. Her dizin için
verilen, o dizinde C/C++ dosya adı uzantılarına sahip tüm dosyalar (ve onun
alt dizinleri, özyinelemeli olarak) incelenecektir. Bu nedenle, çoğu proje için, sadece
kusur bulucu kaynak kodun en üstteki dizininin adını (geçerli dizin için ``.'' kullanın)
dizini) ve kusur bulucu, projenin tüm C/C++ kaynak kodunu inceleyecektir. Eğer sen
sadece sahip olmak istiyorum değişiklikler gözden geçirildiğinde, bu değişikliklerin birleşik bir farkını kaydedin (GNU tarafından yaratılmıştır).
"diff -u" veya "svn diff" veya "git diff") bir yama dosyasına ekleyin ve --patch (-P) seçeneğini kullanın.

Flawfinder, riske göre sıralanmış bir “isabet” (potansiyel güvenlik kusurları) listesi oluşturacaktır; en
en riskli vuruşlar ilk önce gösterilir. Risk seviyesi köşeli parantez içinde gösterilir ve değişiklik gösterir.
0, çok az riskten, 5 büyük riske kadar. Bu risk seviyesi sadece
işlevi, ancak işlevin parametrelerinin değerleri üzerinde. Örneğin, sabit
diziler çoğu durumda tam değişken dizilerden daha az risklidir.
bağlamlarda isabet daha düşük bir risk düzeyine sahip olacaktır. Flawfinder gettext hakkında bilgi sahibidir (yaygın bir
uluslararasılaştırılmış programlar için kitaplık) ve içinden geçen sabit dizeleri ele alır
gettext sanki sabit dizgelermiş gibi; bu, yanlış isabetlerin sayısını azaltır
uluslararasılaştırılmış programlar Flawfinder, _T() ile aynı şeyi yapacak ve
_TEXT(), uluslararasılaştırılmış programları işlemek için yaygın Microsoft makroları. kusur bulucu
yorumların ve dizelerin içindeki çoğu metni doğru şekilde yok sayar. Normalde kusur bulucu hepsini gösterir
en az 1 risk düzeyine sahip isabetler, ancak yalnızca göstermek için --minlevel seçeneğini kullanabilirsiniz
İsterseniz daha yüksek risk seviyelerine sahip isabetler. Hit açıklamaları ayrıca ilgili Ortak
Aşağıda tartışıldığı gibi, Zayıflık Numaralandırma (CWE) tanımlayıcıları parantez içinde. kusur bulucu
resmi olarak CWE-Uyumludur.

Her isabet aslında bir güvenlik açığı değildir ve her güvenlik açığı değildir
mutlaka bulunur. Bununla birlikte, kusur bulucu bulma ve kaldırma konusunda yardımcı olabilir.
güvenlik açıkları. Kusur bulucuyu kullanmanın yaygın bir yolu, önce kusur bulucuyu
bir dizi kaynak kodu ve en yüksek riskli öğeleri inceleyin. Ardından, incelemek için --inputs kullanın
giriş konumlarını kontrol edin ve yalnızca yasal ve güvenli giriş değerlerinin olduğundan emin olun.
güvenilmeyen kullanıcılardan kabul edilir.

Bir programı denetledikten sonra, gerçekten iyi olan kaynak kod satırlarını işaretleyebilirsiniz, ancak
sahte uyarılara neden olur, böylece kusur bulucu onlar hakkında şikayet etmekten vazgeçer. işaretlemek için
satırına bu uyarıların bastırılması için özel olarak biçimlendirilmiş bir yorum koyun.
aynı satır (kaynak kodundan sonra) veya önceki satırda tek başına. yorum
aşağıdaki iki biçimden birine sahip olmalıdır:

· // Kusur Bulucu: yoksay

· /* Kusur Bulucu: yoksay */

Uyumluluk adına, "Flawfinder:" yerine "ITS4:" veya "RATS:" yazabilirsiniz.
özel olarak biçimlendirilmiş yorumlar. Bu tür satırların yanlış olması mümkün olduğundan, kullanabilirsiniz.
--neverignore seçeneği, kusur bulucunun ne olursa olsun hiçbir satırı asla görmezden gelmemesine neden olur
yorum yönergeleri der (daha kafa karıştırıcı bir şekilde, --neverignore yok sayar).

Flawfinder, “kural seti” adı verilen dahili bir veri tabanı kullanır; kural kümesi tanımlar
güvenlik kusurlarının yaygın nedenleri olan işlevler. Standart kural seti, büyük bir
her ikisini de etkileyebilecek genel sorunlar da dahil olmak üzere farklı potansiyel sorunların sayısı
C/C++ programının yanı sıra bir dizi belirli Unix benzeri ve Windows işlevi vardır.
özellikle sorunlu. --listrules seçeneği, geçerli kuralların listesini bildirir ve
varsayılan risk seviyeleri. Yukarıda belirtildiği gibi, belirli bir sistemde bulunan her olası güvenlik kusuru
kaynak kod dosyasına (kural kümesindeki bir girişle eşleşen) ``hit'' denir ve
Programın herhangi bir belirli çalışması sırasında bulunan isabetlere ``hitlist'' denir.
kaydedilebilir (--savehitlist kullanılarak), yeniden görüntülenmek üzere yeniden yüklenebilir (--loadhitlist kullanılarak) ve
yalnızca başka bir koşudan farklı olan isabetleri gösterebilirsiniz ( --diffhitlist kullanarak).

Flawfinder, bazı temel artı ve eksilere yol açan basit bir araçtır. kusur bulucu çalışmaları
basit sözcüksel simgeleştirme yaparak (yorumları atlayarak ve dizeleri doğru biçimde belirterek),
veritabanıyla belirteç eşleşmeleri aramak (özellikle işlev çağrılarını bulmak için).
Bu nedenle Flawfinder, basit sözcüksel simgeleştirmeyi de kullanan RATS ve ITS4'e benzer.
Flawfinder daha sonra riski tahmin etmek için fonksiyon parametrelerinin metnini inceler. farklı
atel, gcc'nin uyarı bayrakları ve clang gibi araçlar, kusur bulucu değil kullanmak veya sahip olmak
arama yaparken kontrol akışı, veri akışı veya veri türleri hakkındaki bilgilere erişim
potansiyel güvenlik açıkları veya risk seviyesinin tahmin edilmesi. Böylece, kusur bulucu
güvenlik açıkları için mutlaka birçok yanlış pozitif üretir ve birçoğunu rapor edemez
güvenlik açıkları. Öte yandan, kusur bulucu programlardaki güvenlik açıklarını bulabilir.
inşa edilemez veya bağlanamaz. Çoğu zaman olamayacak programlarla bile çalışabilir.
derlenmiş (en azından gözden geçirenin araçları tarafından). Flawfinder'ın da kafası karışmıyor
daha karmaşık araçların sorun yaşadığı makro tanımları ve diğer tuhaflıklar.
Flawfinder, statik analiz araçlarına basit bir giriş olarak da yararlı olabilir.
Genel olarak, kullanmaya başlaması ve anlaşılması kolay olduğu için.

Komut satırında verilen herhangi bir dosya adı incelenecektir (olağan bir dosya adı olmasa bile).
C/C++ dosya adı uzantısı); böylece kusur bulucuyu istediğiniz belirli dosyaları incelemeye zorlayabilirsiniz.
arzu. Dizinleri özyinelemeli olarak ararken, kusur bulucu yalnızca açılır ve inceler
C/C++ dosya adı uzantılarına sahip normal dosyalar. Flawfinder, dosyaların
".c", ".h", ".ec", ".ecp", ".pgc", ".C", ".cpp" uzantılarına sahip C/C++ dosyaları,
".CPP", ".cxx", ".cc", ".CC", ".pcc", ".hpp" veya ".H". ``-'' dosya adı şu anlama gelir:
standart girdi. Güvenlik sorunlarını önlemek için özel dosyalar (cihaz özel dosyaları gibi)
ve adlandırılmış kanallar) her zaman atlanır ve varsayılan olarak sembolik bağlantılar atlanır (
--allowlink seçeneği sembolik bağları takip eder).

İsabetler listesinden sonra sonuçların kısa bir özeti gelir (bunu kaldırmak için -D kullanın).
bilgi). İsabet sayısını, analiz edilen satırları (wc -l tarafından bildirildiği gibi) ve
fiziksel kaynak kod satırları (SLOC) analiz edildi. Fiziksel bir SLOC, boş olmayan,
yorum satırı. Daha sonra her seviyedeki isabet sayısını gösterecektir; olacağını unutmayın
asla minimum seviyeden (varsayılan olarak 1) daha düşük bir seviyede vuruş yapmayın. Böylece, "[0] 0 [1] 9"
0 seviyesinde 0 isabet rapor edildiği ve 1. seviyede 9 isabet olduğu anlamına gelir
bildirildi. Daha sonra, belirli bir seviyedeki veya daha büyük olan isabet sayısını gösterecektir (yani seviye 3+
3., 4. ve 5. seviyedeki isabetlerin toplamına sahiptir. Böylece, "[0+] 37" girişi
0 veya daha yüksek seviyede 37 isabet olduğunu gösterir (0+ giriş her zaman aynı olacaktır
yukarıdaki "isabet" sayısı gibi). KSLOC başına isabet sayısı daha sonra gösterilir; bu, "seviye veya
daha yüksek" değerler 1000 ile çarpılır ve fiziksel SLOC'ye bölünür.
atlanırsa, bunların sayısı rapor edilir. İsabetler bastırılmışsa ("yoksay" kullanılarak
yukarıda açıklandığı gibi kaynak kodu açıklamalarında yönerge), bastırılan sayı rapor edilir.
Rapora dahil edilecek minimum risk seviyesi görüntülenir; varsayılan olarak bu 1
(bunu değiştirmek için --minlevel kullanın). Özet, önemli hatırlatıcılarla sona erer: Her isabet değil
mutlaka bir güvenlik açığıdır ve başka güvenlik açıkları olabilir
araç tarafından rapor edilmez.

Flawfinder, GNU GPL lisansı sürüm 2 veya üzeri (GPLv2+) altında yayınlanır.

Flawfinder, tamamen açık kaynak olmayan başka bir program olan ITS4'e benzer şekilde çalışır.
yazılım (Açık Kaynak Tanımında tanımlandığı gibi) veya özgür yazılım (Açık Kaynak Tanımında tanımlandığı gibi)
Özgür Yazılım Vakfı). Flawfinder'ın yazarı, ITS4'ün kaynak kodunu hiç görmedi.

KISA TUTORIAL


Kusur bulucunun nasıl kullanılabileceğine dair kısa bir örnek. C/C++'a sahip olduğunuzu hayal edin.
xyzzy adlı bir programın kaynak kodu (yazmış olabilirsiniz veya yazmamış olabilirsiniz) ve
güvenlik açıklarını arıyorsunuz (böylece bunları müşterilerden önce düzeltebilirsiniz)
güvenlik açıklarıyla karşılaşın). Bu eğitim için, bir Unix kullandığınızı varsayacağım-
Linux, OpenBSD veya MacOS X gibi sistem gibi.

Kaynak kodu xyzzy adlı bir alt dizindeyse, muhtemelen bir
metin penceresi ve programı analiz etmek ve bir rapor vermek için kusur bulucunun varsayılan ayarlarını kullanarak
potansiyel güvenlik açıklarının öncelikli listesi ("daha az" yalnızca
sonuçlar ekranda kalır):
kusur bulucu xyzzy | az

Bu noktada, çok sayıda giriş göreceksiniz. Her girdinin bir dosya adı, bir
iki nokta üst üste, bir satır numarası, parantez içindeki bir risk seviyesi (5 en riskli olanıdır), bir kategori,
işlevin adı ve kusur bulucunun satırın neden bir
güvenlik açığı Flawfinder normalde en riskli öğeleri ilk önce göstererek risk düzeyine göre sıralar;
Sınırlı zamanınız varsa, muhtemelen en riskli öğeler üzerinde çalışmaya başlamak ve
süreniz bitene kadar devam edin. Ekranı yalnızca bir riskle sınırlamak istiyorsanız
belirli bir risk seviyesi veya daha yüksekse, --minlevel seçeneğini kullanın. eğer alıyorsan
Değişken adları tehlikeli gibi göründüğü için olağanüstü sayıda yanlış pozitif
işlev adları, bunlarla ilgili raporları kaldırmak için -F seçeneğini kullanın. eğer anlamadıysan
hata mesajı, lütfen aşağıdaki gibi belgelere bakın Yazı Yazmak Güvenli Programlar için Linux ve
Unix NASILhttp://www.dwheeler.com/secure-programshttp://www.dwheeler.com/secure-
güvenli programlar yazma hakkında daha fazla bilgi sağlayan programlar.

Sorunu tanımlayıp anladığınızda, düzeltebilirsiniz. Bazen
hem satır numaraları değişeceği için analizi yeniden yapmak istiyorum ve emin olmak
yeni kodun henüz farklı bir güvenlik açığı sunmadığını.

Bir satırın gerçekten sorun olmadığını belirlediyseniz ve bundan eminseniz,
rahatsız edici satırın hemen önüne veya üstüne gibi bir yorum ekleyin
/* Kusur Bulucu: yoksay */
çıktıda görünmelerini önlemek için.

Bunu yaptıktan sonra, geri dönmeli ve programın girdilerini aramalısınız.
programın güvenilmeyen girdilerinden herhangi birini güçlü bir şekilde filtrelediğinden emin olun. kusur bulucu
--inputs seçeneğini kullanarak birçok program girişini aşağıdaki gibi tanımlayın:
kusur bulucu --inputs xyzzy

Flawfinder, metin editörleri ve entegre geliştirme ortamlarıyla iyi bir şekilde entegre olabilir;
daha fazla bilgi için örneklere bakın.

Flawfinder, HTML sürümlerini oluşturmak için olanlar da dahil olmak üzere birçok başka seçenek içerir.
çıktı (daha güzel ekranlar için kullanışlıdır). Bir sonraki bölüm, bu seçenekleri daha fazla
detay.

SEÇENEKLER


Flawfinder'ın kendi kontrollerini kontrol eden seçenekler halinde gruplandırılabilen bir dizi seçeneği vardır.
belgeler, girdi verilerini seçin, hangi isabetlerin görüntüleneceğini seçin, çıktı biçimini seçin,
ve hit listesi yönetimini gerçekleştirin. Flawfinder, içinde tanımlanan standart sözdizimini destekler.
POSIX (Sayı 7, 2013 Baskı) bölümü ``Fayda Kuralları''. Aynı zamanda GNU'yu da destekler.
uzun seçenekler (çift çizgili biçim seçenekleri --seçenek) bölümünde tanımlandığı gibi GNU C Kütüphane
Referans Manuel ``Program Argüman Sözdizimi Kuralları'' ve GNU kodlama Standartlar
``Komut Satırı Arayüzleri için Standartlar''. Uzun seçenek argümanları şu şekilde sağlanabilir:
``--name=değer'' veya ``-ad değeri''. Bazı seçeneklere yalnızca more kullanılarak erişilebilir.
okunabilir GNU uzun seçenek kuralları; ortak seçenekler de eski tarafından desteklenir
tek harfli seçenek kuralı.

belgeleme
--yardım et

-h Kullanım (yardım) bilgilerini göster.

--versiyon (Sadece) sürüm numarasını gösterir ve çıkar.

--listrüler Daha fazla incelemeyi tetikleyen terimleri (belirteçleri) ve varsayılan risklerini listeleyin
düzeyi ve varsayılan uyarı (eğer varsa, CWE tanımlayıcısı/tanımlayıcıları dahil)
uygulanabilir), tümü sekmeyle ayrılmış. Terimler öncelikle potansiyel olarak-
tehlikeli işlevler Bazıları için rapor edilen risk düzeyi ve uyarının dikkate alındığını unutmayın.
terimin nasıl kullanıldığına bağlı olarak belirli kod varsayılandan farklı olabilir.
Kullanılmış. Her zamanki başlığı istemiyorsanız -D ile birleştirin. kusur bulucu
sürüm 1.29, ayırıcıyı boşluklardan sekmelere değiştirdi ve varsayılanı ekledi
uyarı alanı.

Seçilmesi Giriş Veri
--allowlink Sembolik bağlantıların kullanımına izin verin; normalde sembolik bağlantılar atlanır. yapma
kodu başkaları tarafından analiz ediyorsanız bu seçeneği kullanın; saldırganlar çok şey yapabilir
Bu seçenek etkinken bir analiz için sorunlara neden olacak şeyler. İçin
örneğin, bir saldırgan aşağıdaki gibi dosyalara sembolik bağlantılar ekleyebilir: / Etc / passwd
(dosya hakkında bilgi sızdırıyor) veya dairesel bir döngü oluşturun;
kusur bulucunun "sonsuza kadar" çalışmasına neden olur. Bunu etkinleştirmekle ilgili başka bir sorun
seçenek, aynı dosyaya sembolik kullanılarak birden çok kez başvurulursa
bağlantılar, birden çok kez analiz edilecektir (ve dolayısıyla birden çok kez rapor edilecektir).
Kusur bulucunun zaten sembolik bağlantılara karşı bir miktar koruma içerdiğini unutmayın.
aygıt dosya türleri gibi özel dosya türlerine (örn. /dev/zero veya
C:\mystuff\com1). Kusur bulucu sürüm 1.01 ve öncesi için bunun
varsayılan.

--followdotdir
Adları "." ile başlayan dizinleri girin. Normalde bu tür dizinler
normalde sürüm kontrolü özel verilerini (örneğin,
.git/ veya .svn/), konfigürasyonlar vb.

--bağlantı yok Yok sayıldı. Tarihsel olarak bu, sembolik bağların ardından devre dışı bırakıldı; bu davranış
artık varsayılandır.

--yama=yama dosyası

-P yama dosyası
Seçili dosyaları veya dizinleri inceleyin, ancak yalnızca şu satırlardaki isabetleri rapor edin:
verilen yama dosyası tarafından eklenir veya değiştirilir. Yama dosyası bir
tanınan birleşik fark biçimi (örneğin, GNU "diff -u eski yeni" çıktısı,
"svn diff" veya "git diff [taahhüt]"). Flawfinder, yamanın
dosyalara zaten uygulandı. Yama dosyası ayrıca aşağıdaki değişiklikleri de içerebilir:
alakasız dosyalar (sadece yoksayılacaklar). Verilen satır numaraları
yama dosyası, hangi satırların değiştirildiğini belirlemek için kullanılır;
yama dosyası oluşturulduğundan beri dosyaları değiştirdiniz, yama dosyasını yeniden oluşturun
ilk. Yama dosyasında verilen yeni dosyaların dosya adlarının
büyük/küçük harf, yol öneki ve dizin dahil tam olarak eşleşmelidir
ayırıcı (\ vs. /). Yalnızca birleştirilmiş fark biçimi kabul edilir (GNU diff, svn
diff ve git diff çıktısı tamam); farklı bir formatınız varsa, tekrar
önce onu yenile. Yalnızca sonuçta değişen satırlarda meydana gelen isabetler veya
bunların hemen üstünde ve altında rapor edilir. Bu seçenek şu anlama gelir:
--asla yoksay.

Seçilmesi Hits için ekran
--girişler

-I Yalnızca programın dışından veri alan işlevleri göster; bu da ayarlar
minimum seviye 0.

--min seviye=X

-m X Hit listesine dahil edilmek için minimum risk seviyesini X olarak ayarlayın. Bu 0'dan olabilir (``hayır
risk'') ila 5 (``maksimum risk''); varsayılan 1'dir.

--yanlış pozitif

-F Yanlış pozitif olması muhtemel isabetleri dahil etmeyin. Şu anda, bunun anlamı
bu işlev adları, arkasından "(" gelmiyorsa yok sayılır ve bu
karakter dizilerinin bildirimleri not edilmez. Bu nedenle, bir değişken kullandıysanız
her yerde "erişim" olarak adlandırılan bu, bu sıradan
değişken. Bu varsayılan değil, çünkü bu aynı zamanda olasılığını da artırır.
önemli isabetleri kaçırmak; özellikle, #define yan tümcelerindeki ve çağrılardaki işlev adları
işlev işaretçileri aracılığıyla kaçırılacaktır.

--asla yoksayma

-n Bir "ignore" yönergesine sahip olsalar bile, güvenlik sorunlarını asla göz ardı etmeyin.
yorum Yap.

--regexp=MODEL

-e MODEL
Yalnızca DESEN normal ifade kalıbıyla eşleşen metin içeren isabetleri raporlayın.
Örneğin, yalnızca "CWE-120" metnini içeren isabetleri bildirmek için ``--regex kullanın
CWE-120''. Bu seçenek bayrak adları grep ile aynıdır.

Seçilmesi Çıktı oluşturulan
--sütunlar

-C Her isabetin sütun numarasını (dosya adı ve satır numarasının yanı sıra) gösterin;
bu, satır numarasından sonra iki nokta üst üste ve sütun numarası eklenerek gösterilir.
satır (bir satırdaki ilk karakter 1 numaralı sütundur). Bu kullanışlı
belirli sütunlara atlayabilen editörler için veya diğerleriyle entegrasyon için
araçlar (yanlış pozitifleri daha fazla filtrelemek için olanlar gibi).

--bağlam

-c Bağlamı göster, yani "isabet"/potansiyel kusura sahip satır. Varsayılan olarak
satırı uyarıdan hemen sonra gösterilir.

--sadece veri

-D Üstbilgi ve altbilgiyi görüntüleme. Bunu sadece görmek için --quiet ile birlikte kullanın
verilerin kendisi.

--html

-H Çıktıyı basit metin yerine HTML olarak biçimlendirin.

--hemen

-i İsabetleri anında görüntüleyin (sonuna kadar beklemeyin).

--tek çizgi

-S Her isabet için tek satırlık metin çıktısı olarak görüntüleyin. Etkileşim için kullanışlıdır
derleme araçları ile.

--yok zaman Zamanlama bilgilerini atlayın. Bu, kusur bulucunun regresyon testleri için kullanışlıdır.
kendisi, böylece çıktı, analizin ne kadar sürdüğüne bağlı olarak değişmez
alır.

--sessizlik

-Q Durum bilgilerini (yani hangi dosyaların incelenmekte olduğunu) görüntülemeyin.
analiz sürüyor.

En iyiler listesi Yönetim
--savehitlist=F
Ortaya çıkan tüm isabetleri ("hitlist") F'ye kaydedin.

--loadhitlist=F
Kaynak programları analiz etmek yerine hit listesini F'den yükleyin. Uyarı: Yap değil
güvenilmeyen kaynaklardan isabet listeleri yükleyin (güvenlik nedenleriyle).

--diffhitlist=F
Yalnızca F. F'de olmayan isabetleri göster (yüklü veya analiz edilmiş) muhtemelen oluşturuldu
daha önce --savehitlist kullanıyordu. Uyarı: Yap değil güvenilmeyenlerden farklı isabet listeleri
kaynaklar (güvenlik nedeniyle). --loadhitlist seçeneği sağlanmadıysa,
bu, analiz edilen kaynak kod dosyalarındaki isabetleri gösterecektir.
önceden F'de depolanmıştır. --loadhitlist ile birlikte kullanılırsa, bu
yüklenen isabet listesindeki isabetler F'de değil. Fark algoritması
tutucu; isabetler yalnızca aynıysa "aynı" olarak kabul edilir
dosya adı, satır numarası, sütun konumu, işlev adı ve risk düzeyi.

ÖRNEKLER


Burada kusur bulucunun nasıl çalıştırılacağına dair çeşitli örnekler verilmiştir. İlk örnekler çeşitli
basit komut satırı seçenekleri. Flawfinder, metin düzenleyicilerle iyi çalışacak şekilde tasarlanmıştır ve
entegre geliştirme ortamları, bu nedenle sonraki bölümler kusur bulucunun nasıl entegre edileceğini gösterir
vim ve emacs içine.

Basit komut satırı seçenekleri
kusur bulucu /usr/src/linux-3.16
/usr/src/linux-3.16 dizinindeki tüm C/C++ dosyalarını ve bunların tümünü inceleyin.
alt dizinler (yinelemeli), bulunan tüm isabetleri rapor eder. Varsayılan olarak
kusur bulucu, sembolik bağlantıları ve adları ile başlayan dizinleri atlayacaktır.
bir dönem.

kusur bulucu --min seviye=4 .
Geçerli dizindeki ve alt dizinlerindeki tüm C/C++ dosyalarını inceleyin
(tekrarlı); yalnızca seviye 4 ve üzeri güvenlik açıklarını rapor edin (en yüksek iki
risk seviyeleri).

kusur bulucu --girişler mydir
mydir ve alt dizinlerindeki (yinelemeli) tüm C/C++ dosyalarını inceleyin ve
girdi alan rapor işlevleri (böylece
girişleri uygun şekilde).

kusur bulucu --asla yoksayma mydir
mydir dizini ve alt dizinlerindeki tüm C/C++ dosyalarını inceleyin,
kod yorumlarında yok sayılmak üzere işaretlenen isabetler bile dahil.

kusur bulucu -QD mydir
mydir'i inceleyin ve yalnızca gerçek sonuçları bildirin (başlığı kaldırarak ve
çıktının altbilgisi). Bu form, çıktı aktarılacaksa kullanışlıdır.
daha fazla analiz için diğer araçlar. -C (--sütunlar) ve -S (--singleline)
seçenekler, verileri başka araçlara aktarıyorsanız da yararlı olabilir.

kusur bulucu -QDSC mydir
Yalnızca gerçek sonuçları rapor ederek mydir'i inceleyin (üstbilgi veya altbilgi yok). Her biri
isabet bir satırda rapor edilir ve sütun numaraları rapor edilir. Bu bir olabilir
kusur bulucu çıktısını diğer araçlara besliyorsanız yararlı komut.

kusur bulucu --sessizlik --html --bağlam mydir > sonuçlar.html
mydir dizinindeki ve alt dizinlerindeki tüm C/C++ dosyalarını inceleyin ve
sonuçların HTML formatlı bir versiyonunu üretin. Kaynak kodu yönetimi
sistemler (SourceForge ve Savannah gibi) bunun gibi bir komut kullanabilir.

kusur bulucu --sessizlik --savehitlist save.hits *. [ch]
Geçerli dizindeki tüm .c ve .h dosyalarını inceleyin. hakkında rapor vermeyin
işleme durumunu seçin ve elde edilen isabet listesini (tüm isabetler kümesi) içine kaydedin.
dosya save.hits.

kusur bulucu --diffhitlist save.hits *. [ch]
Geçerli dizindeki tüm .c ve .h dosyalarını inceleyin ve
save.hits dosyasında zaten yoktu. Bu sadece göstermek için kullanılabilir
Saved.hits şuradan oluşturulmuşsa, değiştirilmiş bir programdaki ``yeni'' güvenlik açıkları
analiz edilen programın eski sürümü.

kusur bulucu --yama son.patch .
Geçerli dizini yinelemeli olarak inceleyin, ancak yalnızca
adlı zaten uygulanmış yama dosyasına değiştirildi veya eklendi son.patch.

kusur bulucu --normal ifade "CWE-120|CWE-126" src /
Dizini inceleyin src yinelemeli olarak, ancak yalnızca CWE-120 veya
CWE-126 geçerlidir.

çağıran itibaren gayret
Metin düzenleyicisi vim, kusur bulucuyla iyi çalışan bir "hızlı düzeltme" mekanizması içerir, bu nedenle
uyarı mesajlarını kolayca görüntüleyebilir ve ilgili kaynak koduna geçebilirsiniz.

İlk olarak, bir isabet listesi oluşturmak için kusur bulucuyu çalıştırmanız gerekir ve bunu yapmanın iki yolu vardır.
Bunu yap. İlk yol, önce kusur bulucuyu başlatmak ve ardından (çıktısını kullanarak) çağırmaktır.
vim. İkinci yol, vim'i başlatmak (veya çalıştırmaya devam etmek) ve ardından kusur bulucuyu çağırmaktır.
(tipik olarak vim içinden).

İlk olarak, kusur bulucuyu çalıştırın ve çıktısını bazı FLAWFILE ("kusur dosyası" deyin) içinde saklayın,
sonra vim'i -q seçeneğini kullanarak şu şekilde çağırın: "vim -q kusur dosyası". ikinci yol
(kusur bulucuyu vim'i başlattıktan sonra başlatmak) bir çok yolla yapılabilir. Biri çağırmak
bir kabuk komutu kullanarak kusur bulucu, ":!flawfinder-command > FLAWFILE", ardından şununla izleyin
":cf FLAWFILE" komutu. Başka bir yol da kusur bulucu komutunu dosyanızda saklamaktır.
makefile ("kusur" gibi bir sözde komut gibi) ve ardından ":make kusur" komutunu çalıştırın.

Tüm bu durumlarda, kusur bulucunun çalışması için bir komuta ihtiyacınız vardır. Mantıklı bir komut,
her isabeti kendi satırına (-S) yerleştirir ve kafa karıştıracak üstbilgileri ve altbilgileri kaldırır
bu:

kusur bulucu -SQD .

Artık sonuçları görüntülemek için çeşitli düzenleme komutlarını kullanabilirsiniz. ":cn" komutu görüntülenir
sonraki vuruş; ":cN" önceki isabeti görüntüler ve ":cr" ilk isabete geri sarar.
":copen", "hızlı düzeltme" adı verilen geçerli isabet listesini gösteren bir pencere açar.
window"; ":cclose" hızlı düzeltme penceresini kapatır. Kullanılan penceredeki arabellek
değiştirildi ve hata başka bir dosyada, hataya atlamak başarısız olur. Yapman gerek
pencereye atlamaya çalışmadan önce terk edilebilecek bir arabellek içerdiğinden emin olun.
yeni dosya, diyelim ki dosyayı kaydederek; bu, yanlışlıkla veri kaybını önler.

çağıran itibaren emacs
Metin düzenleyici / işletim sistemi emacs, "grep modu" ve "derleme modu" içerir
Kusur bulucu ile iyi çalışan mekanizmalar, uyarı mesajlarını görüntülemeyi kolaylaştırır, atlama
ilgili kaynak koduna aktarın ve bulduğunuz sorunları düzeltin.

İlk olarak, bir uyarı mesajları listesi oluşturmak için kusur bulucuyu çalıştırmanız gerekir. Kullanabilirsiniz
Bu listeyi oluşturmak için "grep modu" veya "derleme modu". Genellikle "grep modu" daha uygundur;
derleme moduna dokunmadan bırakır, böylece değiştirdikten sonra kolayca yeniden derleyebilirsiniz
bir şey. Ancak, bir isabetin tam sütun konumuna atlamak istiyorsanız, derleyin
modu daha uygun olabilir, çünkü emac'lar kusur bulucunun sütun çıktısını kullanabilir.
herhangi bir özel konfigürasyon olmadan doğrudan doğru konuma atlayın.

Grep modunu kullanmak için "Mx grep" komutunu girin ve ardından gerekli kusur bulucuyu girin
emretmek. Derleme modunu kullanmak için "Mx compile" komutunu girin ve gerekli bilgileri girin.
kusur bulucu komutu Bu bir meta-anahtar komutudur, bu nedenle meta anahtarını aşağıdakiler için kullanmanız gerekir.
klavyeniz (bu genellikle ESC tuşudur). Tüm emacs komutlarında olduğu gibi, yapmanız gerekenler
"grep" veya "derle" yazdıktan sonra RETURN'e basın. Yani birçok sistemde grep modu
ESC xgrep RETURN yazılarak çağrılır.

Ardından, gerekirse daha önce orada olanı kaldırarak bir komut girmeniz gerekir. A
makul komut şudur:

kusur bulucu -SQDC .

Bu komut, her isabet raporunu tek bir satır haline getirir; bu, araçların
üstesinden gelmek. Sessiz ve salt veri seçenekleri, gerekli olmayan diğer durum bilgilerini kaldırır.
emacs içinde kullanın. Sondaki nokta, geçerli dizinin ve tüm
torunları C/C++ kodu için aranır ve kusurlar için analiz edilir.

Kusur bulucuyu çalıştırdıktan sonra, sonuçlarında gezinmek için emac'ları kullanabilirsiniz. bu
Cx ` (Kontrol-x geri tepme) komutu, bir sonraki uyarı için kaynak kod konumunu ziyaret eder
İleti. Cu Cx ` (kontrol-u kontrol-x ters tik) baştan yeniden başlar. Yapabilirsiniz
içindeki o isabet mesajına giderek herhangi bir belirli hata mesajının kaynağını ziyaret edin.
*derleme* arabelleği veya *grep* arabelleği ve dönüş anahtarını yazarak. (Teknik not:
derleme arabelleği, bu derleme-goto-hatasını başlatır.) Fare-2'yi de tıklayabilirsiniz.
düğmesine basın (önce *derleme* arabelleğine geçmeniz gerekmez).

Bir isabetin belirli sütunlarına atlamak için grep modunu kullanmak istiyorsanız,
bunu yapmak için özel olarak emac'ları yapılandırın. Bunu yapmak için, "grep-regexp- emacs değişkenini değiştirin.
alist". Bu değişken, Emacs'a aşağıdakine benzer bir "grep" komutunun çıktısının nasıl ayrıştırılacağını söyler.
çeşitli derleme hatası biçimlerini listeleyen "derleme-hata-regexp-alist" değişkeni
mesajları.

çağıran itibaren Entegre gelişme <span style="font-size:14px;">ortamları</span> (IDE'ler)
(Diğer) IDE'ler için IDE'nizin eklenti setine bakın.

ORTAK ZAYIFLIK NUMARALAMA (CWE)


Ortak Zayıflık Numaralandırması (CWE), yaygın yazılımların resmi bir listesi veya sözlüğüdür.
Yazılımın mimarisinde, tasarımında, kodunda veya uygulamasında oluşabilecek zayıflıklar
ortak bir dil olarak hizmet etmek için yaratılmış, sömürülebilir güvenlik açıklarına yol açabilir
yazılım güvenlik zayıflıklarını tanımlamak için'' (http://cwe.mitre.org/about/faq.html). İçin
CWE'ler hakkında daha fazla bilgi için bkz. http://cwe.mitre.org.

Flawfinder, CWE'yi destekler ve resmi olarak CWE Uyumludur. Hit açıklamaları tipik olarak
olduğu yerde parantez içinde ilgili bir Ortak Zayıflık Numaralandırması (CWE) tanımlayıcısını ekleyin
ilgili bir CWE olduğu bilinmektedir. Örneğin, arabellekle ilgili isabetlerin çoğu,
CWE-120, "giriş boyutunu kontrol etmeden arabellek kopyası" için CWE tanımlayıcısı (aka
``Klasik Arabellek Taşması''). Birkaç durumda birden fazla CWE tanımlayıcısı listelenebilir.
HTML raporu ayrıca MITRE'de barındırılan CWE tanımlarına köprü metni bağlantıları da içerir. İçinde
bu şekilde, kusur bulucu CWE-Çıktı gereksinimini karşılayacak şekilde tasarlanmıştır.

Kusur bulucu tarafından rapor edilen CWE'lerin çoğu, 25 CWE/SANS ilk 2011 listesinde tanımlanmıştır.
(http://cwe.mitre.org/top25/). Birçok kişi bu listede CWE'leri aramak isteyecektir,
örneğin CWE-120 (klasik arabellek taşması), Kusur bulucu daha fazla CWE ile eşlendiğinde
ilk 25 öğeden daha genelse, onu daha genel:daha özel olarak listeler (örn.
CWE-119:CWE-120), burada gerçek haritalama daha geneldir. Kusur bulucu daha fazla
İlk 25 öğenin belirli bir durumu olan belirli bir CWE öğesi, formda listelenir
top-25/daha spesifik (örneğin, CWE-362/CWE-367), burada gerçek haritalama daha spesifiktir
CWE girişi. Aynı giriş birden fazla CWE ile eşleşiyorsa, CWE'ler virgülle ayrılır
(bu genellikle CWE-20, Uygunsuz Giriş Doğrulaması ile olur). Bu, aramayı kolaylaştırır
belirli CWE'ler.

Eşleme için CWE sürüm 2.7 (23 Haziran 2014'te yayınlandı) kullanıldı. Mevcut CWE
eşlemeler, aracın belirleyebileceği en spesifik CWE'yi seçer. Teoride, çoğu CWE
güvenlik öğeleri (aracın aradığı imzalar/kalıplar) teorik olarak
CWE-676 (Potansiyel Olarak Tehlikeli İşlev Kullanımı) ile eşlenmiştir, ancak böyle bir eşleme
kullanışlı. Bu nedenle, bulunabileceği yerlerde daha spesifik eşlemeler tercih edildi. kusur bulucu
sözlüksel bir analiz aracıdır; sonuç olarak, bundan daha spesifik olması pratik değildir.
şu anda uygulanan eşlemeler. Bu aynı zamanda fazla bir şeye ihtiyaç duymanın muhtemel olmadığı anlamına gelir.
harita para birimi için güncelleme; sadece rafine etmek için yeterli bilgiye sahip değil
CWE değişikliklerinin tipik olarak etkileyeceği ayrıntılı CWE seviyesi. CWE tanımlayıcılarının listesi
"make show-cwes" kullanılarak otomatik olarak oluşturuldu, bu nedenle bu listenin
doğru. Eğer bulursanız, lütfen CWE haritalama sorunlarını hata olarak bildirin.

Kusur bulucu, kusur bulucu bu CWE'lerden birini kapsasa bile bir güvenlik açığı bulamayabilir
zayıflıklar. Bununla birlikte, kusur bulucu, kapsadığı CWE'ler tarafından listelenen güvenlik açıklarını bulur,
ve çoğu durumda bu güvenlik açıkları olmayan satırları rapor etmeyecektir. Böylece,
CWE uyumlu olmayı amaçlayan herhangi bir araç için gereklidir, kusur bulucu bir yanlışlık oranına sahiptir
%100'den az pozitif ve %100'den az yanlış negatif oranı. neredeyse kusur bulucu
her zaman bir CWE güvenlik öğesiyle (bir imza/kalıp olarak) bir eşleşme bulduğunda rapor verir.
veritabanında tanımlanmıştır), ancak bazı belirsiz yapılar başarısız olmasına neden olabilir (bkz.
altında).

Flawfinder, aşağıdaki CWE'ler hakkında rapor verebilir (bunlar, kusur bulucunun kapsadığı CWE'lerdir;
``*'', CWE/SANS ilk 25 listesindekileri işaretler):

· CWE-20: Uygunsuz Giriş Doğrulaması

· CWE-22: Bir Yol Adının Kısıtlanmış Bir Dizine Uygun Olmayan Sınırlandırılması (``Yol Geçişi'')

· CWE-78: Bir İşletim Sistemi Komutunda (``OS Komutu) kullanılan Özel Öğelerin Uygunsuz Nötralizasyonu
Enjeksiyon'')*

· CWE-119: Bir Bellek Arabelleğinin Sınırları İçinde İşlemlerin Uygunsuz Kısıtlanması (bir
CWE-120*'nin ebeveyni olduğundan, bu CWE-119:CWE-120) olarak gösterilir.

· CWE-120: Giriş Boyutunu Kontrol Etmeden Tampon Kopyalama (``Klasik Tampon Taşması'')*

· CWE-126: Tampon Aşırı Okuma

· CWE-134: Kontrolsüz Biçim Dizisi*

· CWE-190: Tam Sayı Taşması veya Sarma*

· CWE-250: Gereksiz Ayrıcalıklarla Yürütme

· CWE-327: Bozuk veya Riskli Şifreleme Algoritmasının Kullanımı*

· CWE-362: Uygunsuz Senkronizasyon ile Paylaşılan Kaynak kullanılarak Eşzamanlı Yürütme
(``Yarış Koşulu'')

· CWE-377: Güvensiz Geçici Dosya

· CWE-676: Potansiyel Olarak Tehlikeli İşlevin Kullanımı*

· CWE-732: Kritik Kaynak için Yanlış İzin Ataması*

· CWE-785: Maksimum Boyutlu Tampon olmadan Yol Manipülasyon İşlevinin Kullanımı (alt
CWE-120*, bu nedenle bu CWE-120/CWE-785) olarak gösterilir

· CWE-807: Bir Güvenlik Kararında Güvenilmeyen Girdilere Dayanma*

· CWE-829: Güvenilmeyen Kontrol Alanından İşlevselliğin Dahil Edilmesi*

``--regex'' (-e) seçeneğini kullanarak raporlamak için belirli bir CWE alt kümesini seçebilirsiniz.
Bu seçenek normal bir ifadeyi kabul eder, böylece birden fazla CWE seçebilirsiniz, örneğin ``--regex
"CWE-120|CWE-126"''. Bir komut satırında ``|'' ile birden fazla CWE seçerseniz,
tipik olarak parametreleri alıntılamanız gerekir (çünkü tırnak içine alınmamış bir ``|'' boru sembolüdür).
Flawfinder, CWE-Searchable gereksinimini karşılamak üzere tasarlanmıştır.

Amacınız bir dosyada listelenen CWE'lerin bir alt kümesini bildirmekse, bu başarılabilir.
Unix benzeri bir sistemde ``--regex'' aka ``-e'' seçeneğini kullanarak. Dosya içinde olmalıdır
normal ifade biçimi. Örneğin, ``flawfinder -e $(cat file1)'' yalnızca rapor verir
"dosya1"deki kalıpla eşleşen isabetler. Dosya1 ``CWE-120|CWE-126'' içeriyorsa,
yalnızca bu CWE'lerle eşleşen isabetleri rapor eder.

Tüm CWE güvenlik öğelerinin listesi (kusur bulucunun aradığı imzalar/kalıplar)
"--listrules" seçeneği kullanılarak bulunabilir. Her satır imza belirtecini listeler
(tipik olarak bir işlev adı), bir isabete, varsayılan risk düzeyine ve
varsayılan uyarı (varsayılan CWE tanımlayıcısını içerir). Çoğu amaç için bu
ayrıca hangi CWE güvenlik öğelerinin hangi CWE'lerle eşleştiğini veya
tersi. Örneğin, eşlenen imzaların (işlev adlarının) çoğunu görmek için
CWE-327, varsayılan risk seviyesini veya ayrıntılı uyarı metnini görmeden `` kusur bulucuyu çalıştırın.
--listeler | grep CWE-327 | kes -f1''. Belirteçleri CWE eşlemesi olmadan da görebilirsiniz.
bu şekilde ``flawfinder -D --listrules | grep -v CWE-''. Ancak, süre
--listrules tüm CWE güvenlik öğelerini listeler, yalnızca CWE'den gelen varsayılan eşlemeleri listeler
CWE tanımlayıcılarına güvenlik öğeleri. Kusur bulucunun sağladığı iyileştirmeleri içermez.
geçerlidir (örneğin, fonksiyon parametrelerini inceleyerek).

CWE güvenlik öğeleri ve CWE arasında ayrıntılı ve tam bir eşleme istiyorsanız
tanımlayıcılar, kusur bulucu kaynak kodu (dağıtımda bulunur) en iyi yerdir
bu bilgi için. Bu ayrıntılı bilgi, öncelikle bu birkaç kişinin ilgisini çekmektedir.
kusur bulucunun CWE eşlemelerini iyileştirmeye veya genel olarak CWE'yi iyileştirmeye çalışan kişiler.
Kaynak kodu, güvenlik öğeleri arasındaki eşleştirmeyi ilgili CWE'ye belgeler.
tanımlayıcılar ve tek bir Python dosyasıdır. ``c_rules'' veri kümesi çoğu kuralı tanımlar,
daha fazla iyileştirme yapabilecek bir işleve atıfta bulunarak. arama yapabilirsiniz
varsayılan olarak hangi CWE'yi oluşturduğunu görmek için işlev adları için veri kümesi; ilk parametre ise
``normal'' değil, o zaman bu, farklı seçimler yapabilen rafine bir Python yönteminin adıdır.
CWE'ler (ek bilgilere bağlı olarak). Tersine, ``CWE-numarası'' için arama yapabilirsiniz.
ve hangi güvenlik öğelerinin (imzalar veya kalıplar) bu CWE tanımlayıcısına atıfta bulunduğunu bulun.
Çoğu insan için bu, ihtiyaç duyduklarından çok daha fazlasıdır; çoğu insan sadece taramak ister
sorunları hızlı bir şekilde bulmak için kaynak kodu.


Bu aracın tüm amacı, güvenlik açıklarını bulmaya yardımcı olmaktır, böylece bunlar giderilebilir.
Bununla birlikte, geliştiriciler ve gözden geçirenler, bunu kullanmak için güvenli yazılımın nasıl geliştirileceğini bilmelidir.
aracı, çünkü aksi halde, a aptal ile a araç is yine de a aptal. benim kitabım
http://www.dwheeler.com/secure-programs yardımcı olabilir.

Bu araç, en fazla, daha büyük bir yazılım geliştirme sürecinin küçük bir parçası olmalıdır.
güvenlik açıklarının etkisini ortadan kaldırmak veya azaltmak için tasarlanmıştır. Geliştiriciler ve gözden geçirenler
güvenli yazılımın nasıl geliştirileceğini bilmeleri gerekir ve bu bilgiyi azaltmak için kullanmaları gerekir.
ilk etapta güvenlik açıklarının riskleri.

Farklı güvenlik açığı bulma araçları, farklı güvenlik açıkları bulma eğilimindedir. Böylece, sen
insan incelemesini ve çeşitli araçları kullanmak en iyisidir. Bu araç, bazı
güvenlik açıkları, ancak hiçbir şekilde değil.

her zaman analiz etmelisin kopya bir dizin değil, analiz edilmekte olan kaynak programın
kusur bulucu analizi gerçekleştirirken bir geliştirici tarafından değiştirilebilir. Bu
özellikle analiz edilen programın geliştiricisine zorunlu olarak güvenmiyorsanız true .
Dosyaları analiz ederken bir saldırganın dosyalar üzerinde denetimi varsa, saldırgan
bir güvenlik sorununun ortaya çıkmasını önlemek için dosyaları hareket ettirin veya içeriklerini değiştirin
(veya hiçbir problemin olmadığı bir sorun izlenimi yaratın). hakkında endişeleniyorsan
kötü niyetli programcılar bunu yine de yapmalısınız, çünkü analizden sonra
sonunda çalıştırılan kodun analiz ettiğiniz kod olduğunu doğrulayın. Ayrıca, kullanmayın
--allowlink seçeneği bu gibi durumlarda; saldırganlar dosyalara kötü amaçlı sembolik bağlantılar oluşturabilir
kaynak kodu alanının dışında (örneğin / Etc / passwd).

Kaynak kodu yönetim sistemleri (SourceForge ve Savannah gibi) kesinlikle buna girer
kategori; Bu sistemlerden birinin bakımını yapıyorsanız, önce dosyaları kopyalayın veya ayıklayın.
kusur bulucuyu çalıştırmadan önce ayrı bir dizin (saldırganlar tarafından kontrol edilemez) veya
başka herhangi bir kod analiz aracı.

Kusur bulucunun yalnızca normal dosyaları, dizinleri ve (istenirse) sembolik dosyaları açtığını unutmayın.
bağlantılar; onlara sembolik bir bağlantı yapılsa bile, diğer türdeki dosyaları asla açmaz.
Bu, kaynak koduna olağandışı dosya türleri ekleyen saldırganlara karşı koyar. ama, bu
yalnızca, analiz edilmekte olan dosya sistemi, işlem sırasında bir saldırgan tarafından değiştirilemiyorsa çalışır.
Analiz, yukarıda önerildiği gibi. Bu koruma Cygwin platformlarında da çalışmaz.
ne yazık ki.

Cygwin sistemlerinde (Windows'un üstünde Unix öykünmesi) kusur bulucu varsa ek bir sorun var
analistin güvenemeyeceği programları analiz etmek için kullanılır. Sorun tasarımdan kaynaklanıyor
Windows'taki kusur (MS-DOS'tan devraldığı). Windows ve MS-DOS'ta belirli dosya adları
(örneğin, ``com1'') işletim sistemi tarafından otomatik olarak
çevre birimleri ve bu, tam bir yol adı verildiğinde bile geçerlidir. Evet, Windows ve MS-DOS
gerçekten bu kadar kötü tasarlanmış. Flawfinder, bir dosya sisteminin ne olduğunu kontrol ederek bununla ilgilenir.
nesnedir ve ardından yalnızca dizinleri ve normal dosyaları (ve etkinse sembolik bağlantıları) açar.
Ne yazık ki, bu Cygwin'de çalışmıyor; en azından bazılarında Cygwin'in bazı sürümlerinde
Windows sürümlerinde, yalnızca bir dosyanın aygıt türü olup olmadığını belirlemeye çalışmak,
asmak için program. Çözüm, yorumlanan dosya adlarını silmek veya yeniden adlandırmaktır.
Analizi gerçekleştirmeden önce cihaz adları olarak. Bu sözde ``ayrılmış isimler''
CON, PRN, AUX, CLOCK$, NUL, COM1-COM9 ve LPT1-LPT9, ardından isteğe bağlı olarak bir uzantı gelir
(örneğin, ``com1.txt''), herhangi bir dizinde ve her durumda (Windows büyük/küçük harfe duyarlı değildir).

Do değil güvenilmeyen kaynaklardan gelen isabet listelerini yükleyin veya farklılaştırın. kullanılarak uygulanırlar.
Python turşu modülü ve turşu modülünün hatalı işlemlere karşı güvenli olması amaçlanmamıştır.
veya kötü amaçla oluşturulmuş veriler. Saklanan isabet listeleri, aynı kişiler tarafından daha sonra kullanılmak üzere tasarlanmıştır.
isabet listesini oluşturan kullanıcı; bu bağlamda bu kısıtlama bir sorun değildir.

onworks.net hizmetlerini kullanarak kusur bulucuyu çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Phaser
    Phaser
    Phaser hızlı, ücretsiz ve eğlenceli bir açık
    sunan kaynak HTML5 oyun çerçevesi
    WebGL ve Canvas oluşturma
    masaüstü ve mobil web tarayıcıları. Oyunlar
    ortak olabilir...
    Phaser'ı indirin
  • 2
    VASAL Motor
    VASAL Motor
    VASSAL, oluşturmak için bir oyun motorudur.
    geleneksel tahtanın elektronik versiyonları
    ve kart oyunları. için destek sağlar
    oyun parçası oluşturma ve etkileşim,
    ve ...
    VASSAL Motorunu İndirin
  • 3
    OpenPDF - iText çatalı
    OpenPDF - iText çatalı
    OpenPDF oluşturmak için bir Java kütüphanesidir.
    ve PDF dosyalarını bir LGPL ile düzenlemek ve
    MPL açık kaynak lisansı. OpenPDF
    LGPL/MPL iText'in açık kaynaklı halefi,
    var ...
    OpenPDF'i İndirin - iText Çatalı
  • 4
    SAGA CBS
    SAGA CBS
    SAGA - Otomatik Sistem
    Yerbilimsel Analizler - Bir Coğrafidir
    Bilgi Sistemi (GIS) yazılımı ile
    coğrafi veriler için muazzam yetenekler
    işleme ve ana...
    SAGA GIS'i indirin
  • 5
    Java/JTOpen için Araç Kutusu
    Java/JTOpen için Araç Kutusu
    IBM Toolbox for Java / JTOpen, bir
    destekleyen Java sınıfları kütüphanesi
    istemci/sunucu ve internet programlama
    modelleri OS/400 çalıştıran bir sisteme,
    i5/OS veya...
    Java/JTOpen için Toolbox'ı indirin
  • 6
    d3.js
    d3.js
    D3.js (veya Veriye Dayalı Belgeler için D3)
    sağlayan bir JavaScript kitaplığıdır.
    dinamik, etkileşimli veriler üretmek için
    web tarayıcılarında görselleştirmeler. D3 ile
    sen...
    D3.js'yi indirin
  • Daha fazla »

Linux komutları

Ad