Share to: share facebook share twitter share wa share telegram print page

American Fuzzy Lop (software)

American Fuzzy Lop
Developer(s)Michał Zalewski
Initial releaseNovember 12, 2013; 11 years ago (2013-11-12)
Stable release
2.57b / June 30, 2020; 4 years ago (2020-06-30)[1]
Repository
Written inC, assembly
Operating systemCross-platform
TypeFuzzer
LicenseApache License 2.0
Websitelcamtuf.coredump.cx/afl/ Edit this on Wikidata

American Fuzzy Lop (AFL), stylized in all lowercase as american fuzzy lop, is a free software fuzzer that employs genetic algorithms in order to efficiently increase code coverage of the test cases. So far it has detected dozens of significant software bugs in major free software projects, including X.Org Server,[2] PHP,[3] OpenSSL,[4][5] pngcrush, bash,[6] Firefox,[7] BIND,[8][9] Qt,[10] and SQLite.[11]

Initially released in November 2013, AFL[12] quickly became one of the most widely used fuzzers in security research. For many years after its release, AFL has been considered a "state of the art" fuzzer.[13] AFL is considered "a de-facto standard for fuzzing",[14] and the release of AFL contributed significantly to the development of fuzzing as a research area.[15] AFL is widely used in academia; academic fuzzers are often forks of AFL, and AFL is commonly used as a baseline to evaluate new techniques.[16][17]

The source code of American fuzzy lop is published on GitHub. Its name is a reference to a breed of rabbit, the American Fuzzy Lop.

Overview

AFL requires the user to provide a sample command that runs the tested application and at least one small example input. The input can be fed to the tested program either via standard input or as an input file specified in the process command line. Fuzzing networked programs is currently not directly supported, although in some cases there are feasible solutions to this problem.[18] For example, in case of an audio player, American fuzzy lop can be instructed to open a short sound file with it. Then, the fuzzer attempts to actually execute the specified command and if that succeeds, it tries to reduce the input file to the smallest one that triggers the same behavior.

After this initial phase, AFL begins the actual process of fuzzing by applying various modifications to the input file. When the tested program crashes or hangs, this usually implies the discovery of a new bug, possibly a security vulnerability. In this case, the modified input file is saved for further user inspection.

In order to maximize the fuzzing performance, American fuzzy lop expects the tested program to be compiled with the aid of a utility program that instruments the code with helper functions which track control flow. This allows the fuzzer to detect when the target's behavior changes in response to the input. In cases when this is not possible, black-box testing is supported as well.

Fuzzing algorithm

AFL's logo from fuzzed input stitched together as a single animation.[19]

Fuzzers attempt to find unexpected behaviors (i.e., bugs) in a target program by repeatedly executing the program on various inputs. As described above, AFL is a gray-box fuzzer, meaning it injects instrumentation to measure code coverage into the target program at compile time and uses the coverage metric to direct the generation of new inputs. AFL's fuzzing algorithm has influenced many subsequent gray-box fuzzers.[20][21]

The inputs to AFL are an instrumented target program (the system under test) and corpus, that is, a collection of inputs to the target. Inputs are also known as test cases. The algorithm maintains a queue of inputs, which is initialized to the input corpus. The overall algorithm works as follows:[22]

  1. Load the next input from the queue
  2. Minimize the test case
  3. Mutate the test case. If any mutant results in additional code coverage, add it to the queue. If the mutant results in a crash or hang, save it to disk for later inspection.
  4. Go to step 1

Mutation

To generate new inputs, AFL applies various mutations to existing inputs.[23] These mutations are mostly agnostic to the input format of the target program; they generally treat the input as simple blob of binary data.

At first, AFL applies a deterministic sequence of mutations to each input. These are applied at various offsets in the input. They include:[24][25]

  • Flipping (i.e., negating or inverting) 1-32 bits
  • Incrementing and decrementing 8-, 16-, and 32-bit integers, in both little- and big-endian encodings
  • Overwriting parts of the input with "approximately two dozen 'interesting' values", including zero and maximum and minimum signed and unsigned integers of various widths, again in both little- and big-endian encodings.
  • Replacing parts of the input with data drawn from a "dictionary" of user-specified or auto-detected tokens (e.g., magic bytes, or keywords in a text-based format)[26][23][27]

After applying all available deterministic mutations, AFL moves on to havoc, a stage where between 2 and 128 mutations are applied in a row. These mutations are any of:[23]

  • The deterministic mutations described above
  • Overwriting bytes with random values
  • Operations over multi-byte "blocks":
    • Deleting blocks
    • Duplicating blocks
    • Setting each byte in a block to a single value

If AFL cycles through the entire queue without generating any input that achieves new code coverage, it begins splicing. Splicing takes two inputs from the queue, truncates them at arbitrary positions, concatenates them together, and applies the havoc stage to the result.

Measuring coverage

AFL pioneered the use of binned hitcounts for measuring code coverage.[28] The author claims that this technique mitigates path explosion.[29][30]

Conceptually, AFL counts the number of times a given execution of the target traverses each edge in the target's control-flow graph; the documentation refers to these edges as tuples and the counts as hitcounts. At the end of the execution, the hitcounts are binned or bucketed into the following eight buckets: 1, 2, 3, 4–7, 8–15, 16–31, 32–127, and 128 and greater. AFL maintains a global set of (tuple, binned count) pairs that have been produced by any execution thus far. An input is considered "interesting" and is added to the queue if it produces a (tuple, binned count) pair that is not yet in the global set.

In practice, the hitcounts are collected and processed using an efficient but lossy scheme. The compile-time instrumentation injects code that is conceptually similar to the following at each branch in the control-flow graph of the target program:[31]

cur_location = <COMPILE_TIME_RANDOM>;
shared_mem[cur_location ^ prev_location]++;
prev_location = cur_location >> 1;

where <COMPILE_TIME_RANDOM> is a random integer and shared_mem is a 64 kilobyte region of memory shared between the fuzzer and the target.

This representation is more fine-grained (distinguishes between more executions) than simple block or statement coverage, but still allows for a linear-time "interestingness" test.

Minimization

On the assumption that smaller inputs take less time to execute, AFL attempts to minimize or trim the test cases in the queue.[23][32] Trimming works by removing blocks from the input; if the trimmed input still results in the same coverage (see #Measuring coverage), then the original input is discarded and the trimmed input is saved in the queue.

Scheduling

AFL selects a subset of favored inputs from the queue, non-favored inputs are skipped with some probability.[33][28]

Features

Performance features

One of the challenges American fuzzy lop had to solve involved an efficient spawning of hundreds of processes per second. Apart from the original engine that spawned every process from scratch, American fuzzy lop offers the default engine that relies heavily on the fork system call.[34][28] This can further be sped up by leveraging LLVM deferred fork server mode or the similar persistent mode, but this comes at the cost of having to modify the tested program.[35] Also, American fuzzy lop supports fuzzing the same program over the network.

User interface

American fuzzy lop features a colorful command line interface that displays real-time statistics about the fuzzing process. Various settings may be triggered by either command line options or environment variables. Apart from that, programs may read runtime statistics from files in a machine-readable format.

Utility programs

In addition to afl-fuzz and tools that can be used for binary instrumentation, American fuzzy lop features utility programs meant for monitoring of the fuzzing process. Apart from that, there is afl-cmin and afl-tmin, which can be used for test case and test corpus minimization. This can be useful when the test cases generated by afl-fuzz would be used by other fuzzers.

Forks

AFL has been forked many times in order to examine new fuzzing techniques, or to apply fuzzing to different kinds of programs. A few notable forks include:

AFL++

AFL++
Initial release2.52c / June 5, 2019; 5 years ago (2019-06-05)
Stable release
4.08c / August 10, 2023; 16 months ago (2023-08-10)[42]
Repository
Websiteaflplus.plus Edit this on Wikidata

AFL++ (AFLplusplus)[43] is a community-maintained fork of AFL created due to the relative inactivity of Google's upstream AFL development since September 2017. It includes new features and speedups.[44]

Google's OSS-Fuzz initiative, which provides free fuzzing services to open source software, replaced its AFL option with AFL++ in January 2021.[45][46]

References

Notes

  1. ^ "Releases - google/AFL". Retrieved January 19, 2021 – via GitHub.
  2. ^ "Advisory-2015-03-17". x.org.
  3. ^ "NVD - Detail". nist.gov.
  4. ^ "NVD - Detail". nist.gov.
  5. ^ "NVD - Detail". nist.gov.
  6. ^ "CVE - CVE-2014-6278". mitre.org.
  7. ^ "CVE - CVE-2014-8637". mitre.org.
  8. ^ "How to fuzz a server with American Fuzzy Lop". Fastly. July 21, 2015.
  9. ^ "CVE - CVE-2015-5477". mitre.org.
  10. ^ "[Announce] Qt Project Security Advisory - Multiple Vulnerabilities in Qt Image Format Handling". qt-project.org. April 13, 2015.
  11. ^ "How SQLite Is Tested # 4.1.1. SQL Fuzz Using The American Fuzzy Lop Fuzzer". sqlite.org.
  12. ^ "Test Management and Reporting Software". www.aflglobal.com. Retrieved August 13, 2024.
  13. ^ Poncelet, Clement; Sagonas, Konstantinos; Tsiftes, Nicolas (January 5, 2023). "So Many Fuzzers, So Little Time✱". Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering. ASE '22. New York, NY, USA: Association for Computing Machinery. pp. 1–12. doi:10.1145/3551349.3556946. ISBN 978-1-4503-9475-8. S2CID 253456740.
  14. ^ Fioraldi et al. 2023, p. 2.
  15. ^ Fioraldi, Andrea; Maier, Dominik Christian; Zhang, Dongjia; Balzarotti, Davide (November 7, 2022). "LibAFL". Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security. CCS '22. New York, NY, USA: Association for Computing Machinery. pp. 1051–1065. doi:10.1145/3548606.3560602. ISBN 978-1-4503-9450-5. S2CID 253410747.. "The release of AFL marked an important milestone in the area of software security testing, revitalizing fuzzing as a major research topic".
  16. ^ Hazimeh, Ahmad; Herrera, Adrian; Payer, Mathias (June 15, 2021). "Magma: A Ground-Truth Fuzzing Benchmark". Proceedings of the ACM on Measurement and Analysis of Computing Systems. 4 (3): 49:1–49:29. arXiv:2009.01120. doi:10.1145/3428334. S2CID 227230949.
  17. ^ Metzman et al. 2021.
  18. ^ Technion. "Fuzzing nginx - Hunting vulnerabilities with afl-fuzz". lolware.net.
  19. ^ Zalewski, Michał (February 27, 2015). "Logo for afl-fuzz". afl-users | Google Groups. Retrieved July 25, 2019.
  20. ^ Fioraldi et al. 2023.
  21. ^ Chen, Peng; Chen, Hao (May 2018). "Angora: Efficient Fuzzing by Principled Search". 2018 IEEE Symposium on Security and Privacy (SP). pp. 711–725. doi:10.1109/SP.2018.00046. ISBN 978-1-5386-4353-2. S2CID 3729194.
  22. ^ "Motivation behind AFL — AFL 2.53b documentation". afl-1.readthedocs.io. Retrieved February 26, 2023.
  23. ^ a b c d Fioraldi et al. 2023, p. 6.
  24. ^ "Binary fuzzing strategies: what works, what doesn't". lcamtuf.blogspot.com. August 8, 2014.
  25. ^ "AFL User Guide — AFL 2.53b documentation". afl-1.readthedocs.io. Retrieved February 26, 2023.
  26. ^ "Finding bugs in SQLite, the easy way". lcamtuf.blogspot.com. April 14, 2015.
  27. ^ Manès, Valentin J.M.; Han, HyungSeok; Han, Choongwoo; Cha, Sang Kil; Egele, Manuel; Schwartz, Edward J.; Woo, Maverick (November 2021). "The Art, Science, and Engineering of Fuzzing: A Survey". IEEE Transactions on Software Engineering. 47 (11): 2312–2331. arXiv:1812.00140. doi:10.1109/TSE.2019.2946563. ISSN 1939-3520. S2CID 102351047.
  28. ^ a b c Fioraldi et al. 2023, p. 5.
  29. ^ "Technical "whitepaper" for afl-fuzz".
  30. ^ "More about AFL — AFL 2.53b documentation". afl-1.readthedocs.io. Retrieved February 27, 2023. "This approach allows for a very fine-grained and long-term exploration of program state while not having to perform any computationally intensive and fragile global comparisons of complex execution traces, and while avoiding the scourge of path explosion."
  31. ^ "More about AFL — AFL 2.53b documentation". afl-1.readthedocs.io. Retrieved February 27, 2023.
  32. ^ "More about AFL — AFL 2.53b documentation". afl-1.readthedocs.io. Retrieved February 27, 2023.
  33. ^ "More about AFL — AFL 2.53b documentation". afl-1.readthedocs.io. Retrieved February 27, 2023.
  34. ^ "Fuzzing random programs without execve()". lcamtuf.blogspot.com. October 14, 2014.
  35. ^ "New in AFL: persistent mode". lcamtuf's blog. June 11, 2015.
  36. ^ Lyu, Chenyang; Ji, Shouling; Zhang, Chao; Li, Yuwei; Lee, Wei-Han; Song, Yu; Beyah, Raheem (2019). {MOPT}: Optimized Mutation Scheduling for Fuzzers. pp. 1949–1966. ISBN 978-1-939133-06-9.
  37. ^ Böhme, Marcel; Pham, Van-Thuan; Roychoudhury, Abhik (May 2019). "Coverage-Based Greybox Fuzzing as Markov Chain". IEEE Transactions on Software Engineering. 45 (5): 489–506. doi:10.1109/TSE.2017.2785841. ISSN 1939-3520.
  38. ^ Pham, Van-Thuan; Böhme, Marcel; Santosa, Andrew E.; Căciulescu, Alexandru Răzvan; Roychoudhury, Abhik (September 2021). "Smart Greybox Fuzzing". IEEE Transactions on Software Engineering. 47 (9): 1980–1997. doi:10.1109/TSE.2019.2941681. ISSN 1939-3520. S2CID 53721813.
  39. ^ Böhme, Marcel; Pham, Van-Thuan; Nguyen, Manh-Dung; Roychoudhury, Abhik (October 30, 2017). "Directed Greybox Fuzzing". Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. CCS '17. New York, NY, USA: Association for Computing Machinery. pp. 2329–2344. doi:10.1145/3133956.3134020. ISBN 978-1-4503-4946-8. S2CID 29430742.
  40. ^ Poeplau, Sebastian; Francillon, Aurélien (2020). Symbolic execution with {SymCC}: Don't interpret, compile!. pp. 181–198. ISBN 978-1-939133-17-5.
  41. ^ WinAFL, Google Project Zero, February 23, 2023, retrieved February 26, 2023
  42. ^ "Releases - AFLplusplus/AFLplusplus". Retrieved November 1, 2023 – via GitHub.
  43. ^ Fioraldi, Andrea; Maier, Dominik; Eißfeldt, Heiko; Heuse, Marc (August 2020). AFL++: Combining incremental steps of fuzzing research. 14th USENIX Workshop on Offensive Technologies (WOOT 20).
  44. ^ "The AFL++ fuzzing framework". AFLplusplus.
  45. ^ metzman, jonathan. "[afl++] Use AFL++ instead of AFL for fuzzing. by jonathanmetzman · Pull Request #5046 · google/oss-fuzz". GitHub.
  46. ^ Metzman et al. 2021, p. 1394.

Sources

Further reading

Read other articles:

BPK PENABURBadan Pendidikan Kristen PENABURInformasiDidirikan19 Juli 1950JenisYayasan Pendidikan KristenAkreditasiA (Amat Baik)KurikulumKurikulum Nasional 2013 dan Kurikulum MerdekaAlamatLokasi, Bandar Lampung, Bandung, Bekasi, Bogor, Cianjur, Cibubur, Cicurug, Cimahi, Cirebon, Depok, Indramayu, Jakarta, Jatibarang, Metro, Rengasdengklok, Serang, Sukabumi, Tangerang dan Tasikmalaya, IndonesiaSitus webSitus Web Resmi (Situs Web Resmi)Surelpengurus@bpkpenabur.or.id (email Yayasan Pusat)Afilia…

Aeoliscus Aeoliscus strigatus Klasifikasi ilmiah Domain: Eukaryota Kerajaan: Animalia Filum: Chordata Kelas: Actinopterygii Ordo: Syngnathiformes Superfamili: Centriscoidea Famili: Centriscidae Subfamili: Centriscinae Genus: AeoliscusD. S. Jordan & Starks, 1902[1] Spesies:[2] Aeoliscus heinrichi (Heckel, 1850) (punah) Aeoliscus punctulatus (Bianconi, 1854) Aeoliscus strigatus (Günther, 1861) Aeoliscus adalah satu dari dua genus ikan dalam famili Centriscidae. Di dalamnya ter…

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Shigeru Yoshida – berita · surat kabar · buku · cendekiawan · JSTOR Artikel ini perlu dikembangkan agar dapat memenuhi kriteria sebagai entri Wikipedia.Bantulah untuk mengembangkan artikel ini. Jika tidak d…

Turkish fritter or pancake, made from grated zucchini This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Mücver – news · newspapers · books · scholar · JSTOR (August 2022) (Learn how and when to remove this template message) MücverAlternative namesMucverTypePancakeServing temperatureHotMain ingredientsGrated zuc…

Wakil Wali Kota PaluPetahanaReny Lamadjidosejak 26 Februari 2021Pemerintah Kota PaluMasa jabatan5 tahun dan dapat dipilih kembali untuk satu kali masa jabatanDibentuk2000; 24 tahun lalu (2000)Pejabat pertamaSuardin SueboSitus webSitus web resmi Wakil Wali Kota Palu adalah posisi kedua yang memerintah Kota Palu di bawah Wali Kota Palu. Posisi ini pertama kali dibentuk pada tahun 2000. Daftar No. Wakil Wali Kota Potret Partai Awal Akhir Masa jabatan Periode Wali Kota Ref. 1 Suardin Suebo…

Deklarasi Hak-HakDeklarasi Hak-HakDibuat25 September 1789Ratifikasi15 Desember 1791LokasiArsip Nasional Amerika SerikatPenulisJames MadisonTujuanUntuk menetapkan batasan atas hal-hal yang dapat dan tidak dapat dilakukan pemerintah demi menghormati kebebasan pribadi. Deklarasi Hak-Hak (Bill of Rights) adalah nama untuk sepuluh amendemen pertama terhadap Konstitusi Amerika Serikat. Amendemen ini dibuat untuk melindungi hak-hak asli dari kebebasan dan harta benda. Deklarasi Hak-Hak menjamin sejumla…

The Story of Louis PasteurPoster rilis teatrikalSutradaraWilliam DieterleProduserHenry BlankeDitulis olehPierre CollingsSheridan GibneyPemeranPaul MuniJosephine HutchinsonAnita LouiseDonald WoodsPenata musikLeo F. ForbsteinSinematograferTony GaudioPenyuntingRalph DawsonDistributorWarner Bros.Tanggal rilis 22 Februari 1936 (1936-02-22) Durasi87 menitNegaraAmerika SerikatBahasaInggris The Story of Louis Pasteur adalah sebuah film biografi Amerika 1936. Film tersebut dibintangi oleh Paul…

German daily newspaper For another newspaper in Berlin formerly published under the name Berliner Zeitung, see B.Z. (newspaper). Berliner ZeitungSample front pageTypeDaily newspaper (except Sundays)FormatRhenish (format)Owner(s)Holger FriedrichPublisherBerliner VerlagEditor-in-chiefTomasz KurianowiczFounded21 May 1945; 78 years ago (1945-05-21)LanguageGermanHeadquartersBerlin, GermanyCirculation148,000 (2010)ISSN0947-174XWebsitewww.berliner-zeitung.de The Berliner Zeitung (Germ…

Final Piala FA 2023Sampul buku acara pertandinganTurnamenPiala FA 2022–2023 Manchester City Manchester United 2 1 Tanggal3 Juni 2023StadionStadion Wembley, LondonPemain Terbaik {İlkay Gündoğan (Manchester City)WasitPaul Tierney (Lancashire)[1]Penonton83.179CuacaBerawan sebagian← 2022 2024 → Stadion Wembley saat pertandingan berlangsung Final Piala FA 2023 adalah sebuah pertandingan sepak bola pria yang dimainkan di Stadion Wembley, London, Inggris, pada 3 Juni 2023, anta…

دوري السوبر الألباني 1948 تفاصيل الموسم دوري السوبر الألباني  النسخة 11  البلد ألبانيا  التاريخ بداية:21 مارس 1948  نهاية:25 أغسطس 1948  المنظم اتحاد ألبانيا لكرة القدم  البطل بارتيزاني تيرانا  مباريات ملعوبة 84   عدد المشاركين 14   دوري السوبر الألباني 1947  دوري…

Printer manufactured by C. Itoh Apple Dot Matrix PrinterIntroducedOctober 1982 (1982-10)Discontinued1984 (1984)CostUS$699 (equivalent to $2,207 in 2023)TypeDot matrixSlotsnonePortsParallelPower consumption180 WattsColorBlack ink fabric ribbonDPIHigh Resolution: 160 x 144 dpi Normal Resolution: 96 x 72 dpiSpeed70 lines per minute / 120 characters per second (in draft mode)Weight18.7 lbsDimensions(H × W × D) 4.75 × 15.5 × 11 in The Apple Dot Matrix Printer (often shortened t…

Malaysian politician In this Chinese name, the family name is Ong (王). Yang Berbahagia Dato'Jason Ong Khan LeeDSPN王康立Member of Penang State Legislative Assembly for Kebun BungaIn office9 May 2018 – 12 August 2023Preceded byCheah Kah PengIn office8 March 2008 – 5 May 2013Preceded byQuah Kooi HeongSucceeded byCheah Kah Peng Personal detailsPolitical partyPKROther politicalaffiliationsPakatan Rakyat (till 2018) Pakatan Harapan (since 2018) OccupationPolitician Jason On…

SejarahVietnam 2879–258 SM Dinasti Hồng Bàng 2879–1913 SM • Hồng Bàng Awal 1912–1055 SM • Hồng Bàng Pertengahan 1054–258 SM • Hồng Bàng Akhir 257–179 SM Dinasti Thục 207–111 SM Dinasti Triệu 111 SM–40 M Dominasi Tiongkok ke-1 40–43 Trưng Bersaudari 43–544 Dominasi Tiongkok ke-2 544–602 Dinasti Lý awal 602–938 Dominasi Tiongkok ke-3 939–967 Dinasti Ngô 968–980 Dinasti Đinh 980–1009 Dinasti Lê Awal 1009–1225 Dinasti Lý akhir 1225–1400 Din…

Dalam nama Tionghoa ini, nama keluarganya adalah Tan. Tony Tan CaktiongCMCaktiong pada 2016Nama asal陳覺中LahirTony Tan Caktiong5 Januari 1953 (umur 71)Davao del Sur, FilipinaKebangsaanFilipinaPendidikanUniversitas Santo TomasPekerjaanPengusahaDikenal atasPendiri dan ketua Jollibee Foods Corporation[1] Co-chairman of Double Dragon Properties, Corp.[2]Kekayaan bersihUS$1.9 miliar (Mei 2020)[3]Suami/istriGrace A. Tan CaktiongAnak3 Tony Tan Caktiong, CM (Ha…

Stone statue at St Thomas' Hospital, London Statue of Edward VIArtistThomas CartwrightCompletion date1682TypeSculptureMediumPurbeck marbleSubjectEdward VILocationLondonCoordinates51°29′59″N 0°07′08″W / 51.4998°N 0.1188°W / 51.4998; -0.1188 Listed Building – Grade II*Official nameStone Statue of Edward VIDesignated30 May 1979Reference no.1319933 The statue of Edward VI by Thomas Cartwright at St Thomas' Hospital, Lambeth, London is one of two statues of …

UNESCO World Heritage Site in Tamil Nadu, India Descent of the GangesUNESCO World Heritage SiteLocationMahabalipuram, Chengalpattu district, Tamil Nadu, IndiaPart ofMain complex of Group of Monuments at MahabalipuramCriteriaCultural: (i), (ii), (iii), (vi)Reference249-001Inscription1984 (8th Session)Coordinates12°37′03″N 80°11′56″E / 12.61750°N 80.19889°E / 12.61750; 80.19889Location of Descent of the Ganges in Tamil NaduShow map of Tamil NaduDescent of t…

Plato.Gagasan Alfred North Whitehead mengenai objek-objek abadi sangat di pengaruhi oleh filsafat Plato Objek-objek abadi atau eternal objects adalah sebuah istilah yang dicetuskan oleh Alfred North Whitehead untuk menunjukan kemungkinan-kemungkinan murni (pure potentials) yang akan menjadi prinsip pembentuk atau pemberi wujud tertentu bagi entitas aktual.[1] Setiap wujud dari entitas aktual mengandaikan adanya suatu prinsip yang memberikan bentuk tertentu padanya.[2] Prinsip yan…

Pour les articles homonymes, voir Comté de McHenry. Cet article est une ébauche concernant le Dakota du Nord. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Comté de McHenry(McHenry County) Le palais de justice de Towner, siège du comté. Administration Pays États-Unis État Dakota du Nord Chef-lieu Towner Démographie Population 5 345 hab. (2020) Densité 1,1 hab./km2 Géographie Coordonnées 4…

星洲网网站类型新闻网站语言简体中文總部 马来西亚雪兰莪州八打灵再也Semangat路19号(星洲日报总部)持有者世华多媒体有限公司編輯卜亚烈网址www.sinchew.com.my商业性质是注册选择性(个人新闻空间)推出时间2000年4月21日,​24年前​(2000-04-21)內容許可保有版权 星洲网,是一家马来西亚线上免费综合新闻网站,也是马来西亚销售量最高的中文报《星洲日报》的…

Former Royal Air Force Coastal Command Operational Training Unit No. 1 (Coastal) Operational Training UnitActive1 April 1940 – 19 October 1943Disbanded19 October 1943Country United KingdomBranch Royal Air ForceTypeOperational Training UnitRoleAircrew TrainingPart ofRAF Coastal Command*No. 17 Group RAFMilitary unit No. 1 (Coastal) Operational Training Unit RAF (1 (C)OTU), was a training unit of the Royal Air Force, within No. 17 Group RAF, which was part of RAF Coastal Command. The un…

Kembali kehalaman sebelumnya