|
270 / 18 / 0
Регистрация: 16.02.2016
Сообщений: 29
|
|
| 20.05.2016, 19:56 | |
|
LLVM
Arash Shahkar. ON MATCHING BINARY TO SOURCE CODE Arjun Shah. Metamorphic Code Generator based on bytecode of LLVM IR Christoph Erhardt. Design and Implementation of a TriCore Backend for the LLVM Compiler Framework Daniele Cono D’Elia. Flexible On-Stack Replacement in LLVM David Menendez. Termination-Checking for LLVM Peephole Optimizations Eric Schkufza. STOCHASTIC PROGRAM OPTIMIZATION FOR x86 64 BINARIES Federico Scrinzi. Behavioral Analysis of Obfuscated Code Johan Fänge. A Tracing JIT Compiler for Erlang Jozef Cel’uch. Java bytecode disassembler Linhai Song. Understanding, Detecting, and Diagnosing Real-World Performance Bugs Pooja Gupta. LLVM Backend Development for ReISC Architecture Roel Jordans. High-level software-pipelining in LLVM Simon Andreas Frimann Lund. A High Performance Backend for Array-Oriented Programming on Next-Generation Processing Units Tilmann Scheller. Where is LLVM being used today PE file & malware analysis Alan Martin Sweeney. Malware Analysis & Antivirus Signature Creation Blake Harrell Anderson. Integrating Multiple Data Views for Improved Malware Analysis Christian Rossow. Using Malware Analysis to Evaluate Botnet Resilience Christian Schönbein. PyBox - A Python Sandbox Christopher B. Harrison. ODinn. An In-Vivo Hypervisor-based Intrusion Detection System for the Cloud Christos Papadiotis. Enhancing AV-avoidance capabilities of a PE crypter Dalbir Kaur R. Chhabra. Feature selection and clustering for malicious and benign software characterization Dan Sinema. AUTOMATED REVERSE ENGINEERING OF MALWARE TO DEVELOP NETWORK SIGNATURES TO MATCH WITH KNOWN NETWORK SIGNATURES Dimitrios A. Glynos. Packing Heat! Fadel Omar Shaban. Spyware Detection Using Data Mining for Windows Portable Executable Files Igor Santos, Xabier Ugarte-Pedrero Felix Brezo, Pablo G. Bringas. NOA. AN INFORMATION RETRIEVAL BASED MALWARE DETECTION SYSTEM Jani Hakkarainen. Malware Analysis Environment for Windows Targeted Malware Jarno Niemela. Statistical Analysis Of Malware Defence Methods Jay-Evan J. Tevis. AUTOMATIC DETECTION OF SOFTWARE SECURITY VULNERABILITIES IN EXECUTABLE PROGRAM FILES Jiyong Jang. Scaling Software Security Analysis to Millions of Malicious Programs and Billions of Lines of Code Jonathan Joseph Blount. Adaptive rule-based malware detection employing learning classifier systems Katja Hahn. Robust Static Analysis of Portable Executable Malware Lutz Bohne. Pandora’s Bochs. Automatic Unpacking of Malware MICHAEL STEPHEN THIEMS. OPTIMIZATION AND EXECUTABLE REGENERATION IN THE IMPACT BINARY REOPTIMIZATION FRAMEWORK Neel Bavishi. An Executable Packer Nicholas S. Kovach. Accelerating Malware Detection via a Graphics Processing Unit PAN-MING. Research on Detecting Mechanism for Trojan horse Based on PE file Peter Ekstrand Berg. Behavior-based Classification of Botnet Malware Raja M. Khurram Shahzad. Syed Imran Haider. Detection of Spyware by Mining Executable Files Ronny Merkel, Tobias Hoppe, Christian Kraetzer, Jana Dittmann. Statistical Detection of Malicious PE-Executables Fast Offline Analysisfor Shaked Bar. Kuluoz. Malware and botnet analysis Soon Chai Liang. Understanding behavioural detection of antivirus Steven Strandlund Hansen. Thor Mark Tampus Larsen. Dynamic Malware Analysis. Detection and Family Classification using Machine Learning Sverker Nilsson. Heapy. A Memory Profiler and Debugger for Python Vasileios Pappas. Defending against Return-Oriented Programming Vishwath R. Mohan. SOURCE-FREE BINARY MUTATION FOR OFFENSE AND DEFENSE Yaser Alosefer. Analysing Web-based Malware Behaviour through Client Honeypots Zhiqiang Lin. Reverse Engineering of Data Structures from Binary
2
|
|
| 20.05.2016, 19:56 | |
|
Ответы с готовыми решениями:
65
Организация тем в разделе Assembler, MASM, TASM Полезные макросы для MASM и TASM |
|
270 / 18 / 0
Регистрация: 16.02.2016
Сообщений: 29
|
|
| 13.08.2016, 22:12 | |
|
Offense & Defense:
Ankita Kapratwar. Static and Dynamic Analysis for Android Malware Detection Babar, Sachin D. Security Framework and Jamming Detection for Internet of Things Chiem Trieu Phong. A Study of Penetration Testing Tools and Approaches CRAIG LEONARD TIDWELL. TESTING THE IMPACT OF TRAINING WITH SIMULATED SCENARIOS FOR INFORMATION SECURITY AWARENESS ON VIRTUAL COMMUNITY OF PRACTICE MEMBERS Daniel Lowry Lough. A TAXONOMY OF COMPUTER ATTACKS WITH APPLICATIONS TO WIRELESS NETWORKS Eugene H. Spafford. Computer Viruses as Artificial Life Fred Cohen. Computer Viruses Gencer Erdogan. Security Testing of Web Based Applications Jarmo Puttonen. Virtual learning environment for penetration testing JOHN SHADRACH STAFFORD. BEHAVIOR-BASED WORM DETECTION Joshua David Lind. Betting on the Bitcoin Blockchain Le Wang. Detection of Man-in-the-middle Attacks Using Physical Layer Wireless Security Techniques Mahmood Nazari. Lokesh Galla. Denial of Service attack in IPv6 networks and counter measurements MANUEL RODRIGUES CORREGEDOR. UTILIZING ROOTKITS TO ADDRESS THE VULNERABILITIES EXPLOITED BY MALWARE Marco Ramilli. A Design Methodology for Computer Security Testing Matteo Pomilia. A study on obfuscation techniques for Android malware Matthias Rene Buchler. Semi-Automatic Security Testing of Web Applications with Fault Models and Properties Miller, Bradley Austin. Scalable Platform for Malicious Content Detection Integrating Machine Learning and Manual Review Nishant Shrestha. Security Assessment via Penetration Testing. A Network and System Administrator’s Approach Pasquale Stirparo. MOBILEAK. SECURITY AND PRIVACY OF PERSONAL DATA IN MOBILE APPLICATIONS Penetration Testing Guidance Petter Svenhard & Amir Radaslic. A penetration test of an Internet service provider Ravindar Reddy Ravula. CLASSIFICATION OF MALWARE USING REVERSE ENGINEERING AND DATAMINING TECHNIQUES Ronny L. Bull. A Critical Analysis of Layer 2 Network Security in Virtualized Environments Saied, Alan. Distributed Denial of Service (DDoS) attack detection and mitigation Salman Javaid. Analysis and Detection of Heap-based Malwares Using Introspection in a Virtualized Environment Sergio Pastrana Portillo. Attacks Against Intrusion Detection. Networks. Evasion, Reverse Engineering and Optimal Countermeasures Susanne Vernersson. Penetration Testing in a Web Application Environment Terry L. Nelms. IMPROVING DETECTION AND ANNOTATION OF MALWARE DOWNLOADS AND INFECTIONS THROUGH DEEP PACKET INSPECTION THOMAS-QUENTIN MAILLART. MECHANISMS OF INTERNET EVOLUTION & CYBER RISK Timothy D. Williams. The Value of Threat Models in Enterprise Security Testing of Database Systems & Services Ulf Lindqvist. On the Fundamentals of Analysis and Detection of Computer Misuse Vinod. Korrapati. Security Testing on Endpoint System Vishwath R. Mohan. SOURCE-FREE BINARY MUTATION FOR OFFENSE AND DEFENSE Wesley Jin. Practical, Large-Scale Detection of Obfuscated Malware Code Via Flow Dependency Indexing Honeypot: Albert W. Brzeczko, Jr. SCALABLE FRAMEWORK FOR TURN-KEY HONEYNET DEPLOYMENT Amit D. Lakhani. Deception Techniques Using Honeypots Åsmund Nergård Nyre. Increasing Survivability by Dynamic Deployment of Honeypots Bassam Alkudhir, Eleftherios Chairetakis & Panagiotis Mystridis. Deployment of Low Interaction Honeypots in University Campus Network Benoit Jacob. Automatic XSS detection and Snort signatures-ACLs generation by the means of a cloud-based honeypot system Bertrand Sobesto. EMPIRICAL STUDIES BASED ON HONEYPOTS FOR CHARACTERIZING ATTACKERS BEHAVIOR Brandon Scott Miller. Analysis of Attacks on Web Based Applications Brian M. Bowen. Design and Analysis of Decoy Systems for Computer Security Christian Döring. Improving network security with Honeypots Christian Seifert. Cost-effective Detection of Drive-by-Download Attacks with Hybrid Client Honeypots Corrado Leita, Marc Dacier. SGNET. a worldwide deployable framework to support the analysis of malware threat models DARATZI PARASKEVI. ANALYSIS AND TESTING OF HONEYPOTS HONEYNET SYSTEMS Davide BALZAROTTI. Plusieurs Axes d’Analyse de sites web compromis et malicieux Erwin E. Frederick. TESTING A LOW-INTERACTION HONEYPOT AGAINST LIVE CYBER ATTACKERS Georgios Portokalidis. Using Virtualisation to Protect Against Zero-Day Attacks Gerard WAGENER. Self-Adaptive Honeypots Coercing and Assessing Attacker Behaviour Gurdip Kaur. Jatinder Singh Saini. Implementation of High Interaction Honeypot to Analyze the Network Traffic and Prevention of Attacks on Protocol-Port Basis Honeypots. A Force Multiplier in Educational Domain HONEYPOT SECURITY.pdf Honeypots in Network Security.pdf JAMES JOSEPH YUILL. DEFENSIVE COMPUTER-SECURITY DECEPTION OPERATIONS. PROCESSES, PRINCIPLES AND TECHNIQUES Jan Gobel. Amun. A Python Honeypot Technical Report Jarmo (J.M.) van Lenthe. Combining Multiple Malware Detection Approaches for Achieving Higher Accuracy John Børge Holen-Tjelta. Honeypots in network perimeter defense systems JUNEWON PARK. Acquiring Digital Evidence from Botnet Attacks. Procedures and Methods KAMALDEEP SEHGAL. Study on Web application Honey pots Lucas Tamagna-Darr. Evaluating the effectiveness of an intrusion prevention - Honeypot hybrid Mathias Gibbens. Harsha vardhan Rajendran. Honeypots Michael Nørholt Petersen. Detecting network intrusions Mr. Susheel George Joseph M.C.A, M.Tech, M.Phil(CS). Advanced Honeypot Architecture for Network Threats Quantification Ng.Jun Ping. Enchancing Honeypot Stealthiness Ondřej Koutský. Monitoring and Analysis of Cyber Attacks Radhika Goel, Anjali Sardana, and R. C. Joshi. Wireless Honeypot. Framework, Architectures and Tools Ratinder Kaur and Maninder Singh. A Hybrid Real-time Zero-day Attack Detection and Analysis System Robin Berthier. Advanced Honeypot Architecture for Network Threats Quantification Ronald Mitchell Campbell. The Legal and Ethical Issues of Deploying Honeypots Saleh Ibrahim Bakr Almotairi. Using Honeypots to Analyse Anomalous Internet Activities Sanjeev Kumar, Rakesh Sehgal, Paramdeep Singh. Nepenthes Honeypotsbased Botnet Detection Simon Bell. Building a Honeypot to Research Cyber-Attack Techniques Susan Marie Wade. SCADA Honeynets The attractiveness of honeypots as critical infrastructure security tools for the detection and analysis of advanced threats Vusal Aliyev. Using honeypots to study skill level of attackers based on the exploited vulnerabilities in the network Yaser Alosefer. Analysing Web-based Malware Behaviour through Client Honeypots Yogendra Kumar Jain. Honeypot based Secure Network System YONG TANG. DEFENDING AGAINST INTERNET WORMS Honeytrap: Abhishek Sharma. HONEYPOTS IN NETWORK SECURITY Adam Schoeman. Amber. A Zero-Interaction Honeypot with Distributed Intelligence Aditya K Sood. Rohit Bansal. Reverse Honey Trap. Striking Deep inside Online Web Antivirus Engines and Analyzers Alec Yasinsac. Yanet Manzano. Honeytraps, A Network Forensic Tool Andreas Pitsillidis. Spam Value Chain. Defensive Intervention Analysis Ashwini Gabhane. Honey Trap Security Server. An Efficient Approach of Securing E-Banking Network Chih-Hung Lin and Chung-Huang Yang. IMPLEMENTATION OF NETWORK FORENSICS BASED ON HONEYPOT Daisuke Miyamoto. INTERCEPT. High-interaction Server-type Honeypot based on Live Migration David J. Malan. Rapid Detection of Botnets through Collaborative Networks of Peers DAVID MALANIK, LUKAS KOURIL. Honeypot as the Intruder Detection System David Watson. Jamie Riden. The Honeynet Project. Data Collection Tools, Infrastructure, Archives and Analysis Émerson Salvadori Virti. Honeypots as a Security Mechanism Feng Zhang. Honeypot. А Supplemented Active Defense System for Network Security Hrishikesh Arun Deshpande. HoneyMesh. Preventing Distributed Denial of Service Attacks using Virtualized Honeypots Hu Jingfang. Li Busheng. The Application Research on Network Forensics John E. Clark, Christopher P. Lee, Roshan Menon, Vanessa Rood. HoneyTrap Visualization for Monitoring Honeynets JOHN SHADRACH STAFFORD. BEHAVIOR-BASED WORM DETECTION Lai-Ming Shiue. Shang-Juh Kao. Countermeasure for Detection of Honeypot Deployment M. Dornseif, F.C. Gärtner, and T. Holz. Vulnerability Assessment using Honepots Matthijs Koot. Intrusion Detection Systems Michael Eugene Sanders. Unknown Threat Detection With Honeypot Ensemble Analsyis Using Big Datasecurity Architecture Mitsuaki Akiyama. Study on High Interaction Client Honeypot for Infiltrative Intrusion Detection Nathalie Weiler. Honeypots for Distributed Denial of Service Attacks NIHARIKA. RANJEET KAUR. HONEYPOTS FOR NETWORK SURVEILLANCE Sebastian Poeplau. Jan Gassen. A Honeypot for Arbitrary Malware on USB Storage Devices Web Based Security - Using Honeypots.pdf Yousef T. Aburabie & Mohmed Omar Yousef T. Aburabie & Mohmed Omari. Network Forensics Tool “Honeytrap Project Honeytrap Project Virustraps, Spamtrap: 10 Basics to Avoid Being Categorized as Spam.pdf A Practitioner's Guide to Spam Traps.pdf Cristian Lumezanu. Nick Feamster. Observing Common Spam in Tweets and Email.pdf Demystifying the Anti-Spam Buzz.pdf In Spam Blocklists and Volume. Jaeyeon Jung. An Empirical Study of Spam Traffic and the Use of DNS Black Lists.pdf McBoost. Boosting Scalability in Malware Collection and Analysis Using Statistical Classification of Executables.pdf MDaemon configuration recommendations for dealing with spam related issues.pdf Messaging, Malware and Mobile Anti-Abuse Working Group.pdf Mind Your Blocks.pdf Numaan Huq & Peter Szabo. TRAPPING UNKNOWN MALWARE IN A CONTEXT WEB Oliver Hohlfeld. Longtime Behavior of Harvesting Spam Bots Peter Haider. Bayesian Clustering for Email Campaign Detection Spam, Real World Numbers and the Value of IP Reputation Lists.pdf SPAM TRAPS AND HONEY POTS. DEFINITION, PREVENTION, AND ELIMINATION.pdf The Ultimate Guide to Email Deliverablility.pdf Trap_a_Bot_for_Fun_and_Profit_ Viruses Trojans and Spam.pdf warning-signs-that-your-client What-You-Need-to-Know-about-Sp
1
|
|
|
Модератор
|
|||||||||||||||||||||||||||
| 22.01.2017, 20:21 | |||||||||||||||||||||||||||
|
Кратко о работе с мышью в DOS с помощью сервисного прерывания int 33h на примере учебного задания Манипулятор "мышь" может физически подключаться к одному из портов COM, PS/2 или USB. В каждом из этих случаев работа на "нижнем" уровне будет очень сильно различаться. Кроме того, для разных "мышей" различаться может даже формат обмена данными. Поэтому, ещё в эпоху DOS разработчики постарались упростить работу программистам, в части взаимодействия пользовательской программы с мышью (её драйвером). Это выразилось созданием в драйвере почти унифицированного пользовательского интерфейса. Взаимодействие программы с драйвером реализовано через сервисное прерывание int 33h.Таким образом, вся работа с мышью, свелась к конфигурированию мыши в начале программы, после которого взаимодействие происходит без (ну или почти без) дальнейшего участия программиста. Я отдаю себе отчёт, что на форуме будут находится студенты, а не разработчики, поэтому обзор будет очень упрощённым и кратким. Источниками для более подробного изучения работы с мышью могут послужить материалы из
int 33h. Для этого в регистр ax загружают номер вызываемой функции, при необходимости заполняют соответствующие регистры и вызывают int 33h. Как видно из описания Ральфа Брауна, некоторые функции стандартны, а некоторые присущи конкретным драйверам. К примеру, в исходниках и в документации CuteMouse видно, что данный драйвер поддерживает функции от 00h до 21h.Итак. Я привык к разработке сверху вниз, поэтому и пояснения буду приводить в этом порядке. Не вижу смысла в перепечатывании справочной информации по функциям int 33h.Возьму для обозначения цели задачу Управление манипулятором мышь - изменение формы курсора в зависимости от координат.
int 33h. Вызываем функцию MouseInit (AX=0000h), которая в регистре AX вернёт результат инициализации - успех или неудача (отсутствие самой мыши или не установлен драйвер). Естественно, если нет возможности работы с мышью, то нет нужды её конфигурировать и дальше.
При установке обработчика указывается условие, когда он будет вызываться драйвером. Условий раз-два и обчёлся - перемещение, нажатие или отпускание одной из кнопок. Условия можно совмещать - к примеру, нажатие левой кнопки и отпускание правой
Вызываем функцию "показать курсор" (AX=0001h). С этого момента на экране виден курсор мыши. Собственно настройку можно считать завершённой. Далее выполняется основная часть программы. Единственно, нужно сделать примечание по поводу дополнительных манипуляций с мышью на этом этапе. Функцию "спрятать курсор" (AX=0002h) рекомендуется вызывать каждый раз перед тем, как произвести какие-либо изменения на том участке экрана, где находится курсор. Этим Вы избежите проблем, возникающих из-за взаимодействия курсора с данными на экране. После завершения изменений вызывается функция "показать курсор" и работа продолжается. После завершения основной части программы следует выполнить действия по завершению работы с мышью. Этих действий немного: спрятать курсор и удалить пользовательский обработчик прерывания.
Теперь осталось пояснить работу пользовательского обработчика. Ведь именно в нём выполнялась основная часть работы по учебному заданию (смена формы курсора в зависимости от его позиции). Собственный обработчик событий мыши - процедура с "дальним вызовом", поэтому завершается командой retf. На вход процедуре драйвером передаются в регистрах следующие данные
Возвращаемые координаты совпадают с пиксельными координатами соответствующей точки на экране в большинстве графических режимов, кроме 04, 05, 0Dh, 13h, в которых Х-координату мыши нужно разделить на 2, чтобы получить номер столбца соответствующей точки на экране. В текстовых режимах обе координаты надо разделить на 8, чтобы получить номер строки и столбца соответственно. Ещё нужно отметить, что сегмент данных указывает не на пользовательские данные, а на сегмент данных драйвера, поэтому потребуются некоторые манипуляции, чтобы "дотянуться" к переменным своей программы. Для выполнения поставленной учебной задачи нужно сверить границы регионов и в зависимости от номера региона изменить форму курсора. По содержимому CX и DX выбираем текущий регион. Далее, для каждого региона по значению переменной с номером текущей формы курсора оценивается, требуется ли изменение формы, или форма курсора соответствует региону. При необходимости - вызывается функция изменения формы курсора.
Целиком учебная программа приведена в теме Управление манипулятором мышь - изменение формы курсора в зависимости от координат. В примечании R71MT очень хорошо видна форма курсора "крест" при представлении масок в двоичном коде. Стоит обратить внимание на такой способ представления формы курсора, т.к. она позволяет создавать и редактировать сразу в коде.
2
|
|||||||||||||||||||||||||||
|
Модератор
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11.11.2018, 17:46 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Рисование окружности в графических режимах DOS Введение Для рисования окружности в графических режимах DOS применяют несколько алгоритмов: 1. Построение по параметрическому уравнению окружности (с использованием FPU) 2. Построение окружности с применением алгоритмов растеризации: 2.1 Midpoint circle algorithm 2.2 Алгоритм Брезенхэма 2.3 Алгоритм Мичнера 2.4 Модификации алгоритмов растеризации Построение по параметрическому уравнению окружности (с использованием FPU) Построение основано на вычислениях параметрического уравнения окружности где x, y – координаты точки окружности, R – радиус окружности, Изменяя параметр Примечания к реализации. 1. Выбор шага приращения параметра, чтобы и скорость была высокой (за счёт пропуска сливающихся на экране точек) и окружность не имела разрывов между точками. Очевидно, что при построении окружности на экране будут установлены точки в количестве длины этой окружности, т.е. 2. Некоторого ускорения можно добиться, вычисляя уравнение не для полной окружности, а для 1/4 или даже для 1/8. При этом координаты невычисленных по уравнению точек находятся из соображений симметричности их расположения относительно центра окружности. 3. Т.к. алгоритмические возможности улучшения уже исчерпаны, остаётся лишь оптимизация на уровне процессора — минимизация обращений к памяти и прочие трюки на вкус программиста. Совсем избавится от обращений к памяти не удастся из-за отсутствия прямого обмена между регистрами CPU и FPU – координаты будут передаваться в CPU через память. 4. Этот алгоритм имеет достоинство в явной возможности коррекции сжатия изображения, вызванной прямоугольной формой точек экрана. Зная соотношения сторон экрана (4:3, 16:9) и разрешение у каждого конкретного графического видео режима, можно ввести поправочные множители в параметрическое уравнение. При этом, строго математически, на экране будет рисоваться эллипс, но визуально он будет смотреться как окружность. 5. К недостатку метода можно отнести его невысокую скорость относительно методов растеризации. Это заметно при попытке перемещения окружности по экрану - стирание на старом месте и рисование на новом месте. Построение при помощи FPU заметно медленнее. Алгоритм множество раз реализовывался в различных темах форума. Ряд реализаций, разной степени «навороченности» можно посмотреть по ссылкам Рисование спиралей и окружностей (некорректная отрисовка окружностей) Вычисление выражение и прорисовка ответа в овале Движение двух окружностей https://www.cyberforum.ru/post9799088.html Также, реализации этого метода можно встретить в учебниках ассемблера среди примеров использования FPU. Например, в ряде ответов я использовал исходник из книги Рудаков П.И., Финогенов К.Г. программируем на языке ассемблера IBM PC - Изд. 2-е. - Обнинск: Издательство "Принтер", 1997.-584 с., илл. Построение окружности с применением алгоритмов растеризации Основная идея алгоритмов растеризации состоит в том, что для построения аналитических кривых (отрезок прямой, окружность, эллипс, кривые Безье) отказаться от работы с FPU и пользоваться целочисленной арифметикой в CPU и применять некоторые математические зависимости между числами (например, квадрат числа N равен сумме N нечётных слагаемых от 1 до 2N-1). Изначальный ход рассуждений был подобен описанному в статье FAQ для раздела Assembler, MASM, TASM Дальше, применив формулу суммы натуральных нечётных чисел арифметической прогрессии пришли к алгоритму https://web.archive.org/web/20... g-circles/ При углах построения между 45 и 90 градусов справедливо соотношение Далее, из алгебраической формулы окружности Учитывая, что С учётом формулы суммы нечётных чисел, получаем алгоритм Реализация алгоритма на C
Midpoint circle algorithm Именно этот алгоритм послужил основой для более развитых алгоритмов Брезенхэма и Мичнера. Он описан на английской страничке Wikipedia https://en.wikipedia.org/wiki/... _algorithm Его реализации на разных языках программирования приведены http://rosettacode.org/wiki/Bi... _algorithm Реализация алгоритма на языке C со странички Wikipedia
Реализация алгоритма на ассемблере TASM приведена по ссылке https://www.cyberforum.ru/post12110426.html Фрагмент реализации алгоритма на языке ассемблера
Этот алгоритм рисует окружность заметно быстрее, чем способ с привлечением FPU. Но алгоритм имеет недостаток - при рисовании окружностей малых диаметров, на дисплее получается скруглённый квадрат. Алгоритм Брезенхэма http://ru.wikibooks.nym.su/wik... Брезенхэма http://atarasevich.blogspot.co... ithms.html https://ru.wikibooks.org/wiki/... ружности_3 http://ermak.cs.nstu.ru/kg_riv... h_sEc0.3.1 http://algolist.manual.ru/grap... circle.php Как видно из описания алгоритма, отдельно рассматриваются три ситуации — движение по вертикали, по горизонтали, по диагонали. Реализация алгоритма на языке C
Реализовывать его нет смысла, т.к. множество переходов внутри цикла построения несколько замедлят выполнение кода из-за особенностей процессора (разрушение очереди предвыбранных команд). Алгоритм Мичнера Часто именно этот алгоритм приводят под названием «алгоритм Брезенхэма». Его описание и реализации на разных языках программирования: https://www.cyberforum.ru/post251171.html https://www.cyberforum.ru/post13023232.html http://members.chello.at/~easy... enham.html http://atarasevich.blogspot.co... ithms.html http://algolist.manual.ru/grap... circle.php Реализация алгоритма на языке C
Отформатирую этот исходник и чуть переименую переменные
Кроме этого, можно воспользоваться тем, что цикл while-do (с предусловием) благодаря значениям x и y при инициализации всегда выполнится хотя бы один раз. Значит можно заменить его на цикл с постусловием. Это избавит от лишнего перехода.
Модификации алгоритмов растеризации окружности Помимо приведённых выше алгоритмов, среди примеров реализации встречается другие варианты. Причины модификации и источники как правило не указываются. Подозреваю, что подобную информацию следует искать среди более серьёзной литературы, вроде "Искусство программирования" Дональда Кнута. Вариант алгоритма Мичнера. Присутствует более сложное условие и построение для четырёх точек. Кликните здесь для просмотра всего текста
2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Модератор
|
|||||||||||||||||||||||||||||||||||||||||
| 20.04.2020, 17:19 | |||||||||||||||||||||||||||||||||||||||||
|
Вывод диагностического сообщения об ошибке в программе для Windows x86 (32-разрядной) Введение В случае возникновения ошибки при выполнении функции WinAPI в описаниях MSDN предлагается уточнять детали при помощи функции GetLastError. Дополнительно предлагается по коду ошибки получить соответствующее текстовое диагностическое сообщение при помощи FormatMessage. Специалисты Microsoft приводят пример использования этих удобных процедур: пример из MSDN
другой пример из MSDN
Его удобно применять при поиске ошибок в программе. Реализация на masm32 Код оформлен в виде процедуры. В качестве параметра процедуре передаётся адрес строки, при помощи которой можно идентифицировать место в исходном коде. Например, в том же исходнике для демонстрации FindFirstFile, FindNextFile, FindClose - процедура DisplayErrorBox вызывается в двух местах с соответствующими строками.
1. В начале программы определяются строки идентификации сообщений об ошибке. 2. Описывается прототип процедуры DisplayErrorBox. 3. В местах возможного возникновения ошибок добавляются проверки и вызовы DisplayErrorBox. 4. В конец сегмента кода копируется исходник процедуры DisplayErrorBox. Например,
Примеры, когда применение DisplayErrorBox или его аналогов в ассемблерных программах сократило время на поиск ошибок Гиперссылка (подклассирование статического элемента управления) Используя CreateProcess запустить внешнюю программу Штатные средства, входящие в библиотеку masm32 Также, подобное всплывающее окно можно получить штатными для пакета masm32 средствами. процедура GetErrDescription В состав библиотеки masm32.lib входит процедура GetErrDescription, описанная в "\masm32\m32lib\geterror.asm". Assembler GetErrDescription proc uses ebx edi ErrNum:DWORD Для вызова GetErrDescription требуется 1. В начале программы добавить пути к заголовочным и библиотечным файлам 2. Вызвать процедуру с нулевым параметром или со значением кода ошибки. Пример,
макрос LastError$ В состав библиотеки входит макрос-функция LastError$, который описан в "\masm32\macroc.asm". Макрос объединяет вызовы GetLastError() и FormatMessage() для получения диагностического сообщения об ошибке, на основе формируемого операционной системой сообщения об ошибке. При использовании неявно формирует буфер в 1024 байт в сегменте неинициализированных данных .data?.Для вызова LastError$ требуется 1. В начале программы добавить пути к заголовочным и библиотечным файлам 2. Обратиться к макросу. Среди примеров к пакету присутствует \masm32\examples\exampl07\lasterr\laster r.asm в котором показано применение макроса
0
|
|||||||||||||||||||||||||||||||||||||||||
|
Модератор
|
|||||||||||||||||||||||||||||||
| 09.01.2022, 17:00 | |||||||||||||||||||||||||||||||
|
Вывод диагностического сообщения об ошибке в программе для Windows x86-64 (64-разрядной) Введение В случае возникновения ошибки при выполнении функции WinAPI в описаниях MSDN предлагается уточнять детали при помощи функции GetLastError. Дополнительно предлагается по коду ошибки получить соответствующее текстовое диагностическое сообщение при помощи FormatMessage. Специалисты Microsoft приводят пример использования этих удобных процедур: пример из MSDN
другой пример из MSDN
Его удобно применять при поиске ошибок в программе. Реализация на masm64 Код оформлен в виде процедуры. В качестве параметра процедуре передаётся адрес строки, при помощи которой можно идентифицировать место в исходном коде. Например, в том же исходнике для демонстрации FindFirstFile, FindNextFile, FindClose - процедура DisplayErrorBox вызывается в двух местах с соответствующими строками. При реализации в 64-разрядной системе алгоритмически всё остаётся так же, как и для 32-разрядной версии. Единственная сложность возникает при реализации из-за способа передачи аргументов в функцию - при большом количестве параметров нужно внимательно следить за стековым фреймом, часть параметров сохранять в месте, зарезервированном вызывающим кодом. Также обращу внимание на опции компилятора, запрещающие автоматически формировать пролог и эпилог процедур, поэтому они формируются явно.
1. В начале программы определяются строки идентификации сообщений об ошибке. 2. В местах возможного возникновения ошибок добавляются проверки и вызовы DisplayErrorBox. 3. В конец сегмента кода копируется исходник процедуры DisplayErrorBox. Например,
Пример использования Кликните здесь для просмотра всего текста
Программа должна вывести время последней записи в файл, имя которого указано в переменной szFileName, определённой в сегменте данных. В случае ошибки (отсутствия указанного файла) должно появиться всплывающее окно с диагностическим сообщением.
Штатные средства, входящие в библиотеку masm64 На данный момент пакет masm64, распространяемый Steve Hutchesson, не содержит функции, подобной GetErrDescription или макроса LastError$ (из пакета masm32). Но пакет masm64 динамично развивается, так что, возможно, в будущем пополнится подобным функционалом.
0
|
|||||||||||||||||||||||||||||||
| 09.01.2022, 17:00 | |
|
Видеоуроки по Ассемблеру MASM/TASM (для DOS) на русском языке MASM, TASM, FASM: что выбрать для программирования в ядре Есть ли компиляторы Tasm или Masm для 64-разрядных систем Подскажите ссылки на FAQ для разделов Assembler, MASM, TASM Assembler Переделать из TASM в masm Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|