Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleJune 2023
Binary Reverse Engineering for All
ITiCSE 2023: Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1Pages 243–249https://doi.org/10.1145/3587102.3588790We report our experience with a novel course on binary reverse engineering, a university computer science course that was offered at the second-year level to both computer science majors as well as non-majors, with minimal prerequisites. While reverse ...
- abstractJuly 2019
Teaching AVR Assembly by Building an Arduino Arcade Machine
ITiCSE '19: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science EducationPages 233–234https://doi.org/10.1145/3304221.3325549This paper describes a series of homework assignments, labs, and a project developed to teach AVR assembly language as part of a sophomore-level Computer Organization course. At the culmination of this module, students built a handheld arcade machine ...
- research-articleSeptember 2018
Verse: An EDSL for Cryptographic Primitives
PPDP '18: Proceedings of the 20th International Symposium on Principles and Practice of Declarative ProgrammingArticle No.: 10, Pages 1–9https://doi.org/10.1145/3236950.3236971Cryptographic primitives need high-speed implementations that are also resistant to side channel attacks. The absolute control over instructions and registers that such implementations demand makes assembly language programming a necessity. In this ...
- abstractFebruary 2018
Below C Level: A Simulator for Visualizing x86-64 (Abstract Only)
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationPage 274https://doi.org/10.1145/3159450.3162344Students often encounter assembly language during the course of their education as part of learning about the low-level operation of computer systems. While there are many assembly languages ranging from simple to complex, x86-64 is widely used in ...
- abstractJune 2017
TetrisOS and BreakoutOS: Assembly Language Projects for Computer Organization
ITiCSE '17: Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science EducationPages 88–89https://doi.org/10.1145/3059009.3072976TetrisOS and BreakoutOS are projects developed for a sophomore-level computer organization course. Each project teaches a wide range of x86 assembly language topics, including iteration, function calls, data storage, segmentation, communication with ...
-
- posterFebruary 2015
MIPSUnit: A Unit Testing Framework for MIPS Assembly (Abstract Only)
SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science EducationPage 689https://doi.org/10.1145/2676723.2691926We present MIPSUnit, a unit test framework for MIPS assembly. MIPSUnit's primary benefit is that it reduces the time needed to grade assembly language assignments. It also provides a time-efficient means for providing students additional testing ...
- ArticleNovember 2014
Avoiding Hardware Aliasing: Verifying RISC Machine and Assembly Code for Encrypted Computing
ISSREW '14: Proceedings of the 2014 IEEE International Symposium on Software Reliability Engineering WorkshopsPages 365–370https://doi.org/10.1109/ISSREW.2014.102'Hardware aliasing' classically arises when a processor through failure or design has fewer bits than required to address each memory location uniquely, and also - nowadays - in the context of homomorphically encrypted computing. In such contexts, ...
- abstractJune 2014
Making the hardware-software connection with PLP
ITiCSE '14: Proceedings of the 2014 conference on Innovation & technology in computer science educationPage 324https://doi.org/10.1145/2591708.2602678In this paper, we describe a novel platform for Computer Science and Engineering education that helps students to connect software concepts with the underlying hardware. Students often learn about programming languages, computer architecture, assembly ...
- research-articleMarch 2012
LLDSAL: a low-level domain-specific aspect language for dynamic code-generation and program modification
DSAL '12: Proceedings of the seventh workshop on Domain-Specific Aspect LanguagesPages 15–20https://doi.org/10.1145/2162037.2162043Dynamic binary translation frameworks enable late modifications of binary programs. The binary translator needs to generate dynamic code at runtime for trampolines, translated control flow instructions, additional runtime checks, and lookups. The code ...
- tutorialFebruary 2012
Circuits and microcontrollers in computer organization laboratories (abstract only)
SIGCSE '12: Proceedings of the 43rd ACM technical symposium on Computer Science EducationPage 662https://doi.org/10.1145/2157136.2157352This workshop will introduce a set of hands-on laboratory activities appropriate for a first Computer Organization course. Participants will work with real equipment: first implementing elementary digital circuits with TTL logic chips, and then ...
- research-articleJuly 2011
Social security: collaborative documentation for malware analysis
CHINZ '11: Proceedings of the 12th Annual Conference of the New Zealand Chapter of the ACM Special Interest Group on Computer-Human InteractionPages 17–24https://doi.org/10.1145/2000756.2000759Documentation and collaboration are critical elements for malware analysis, however current tool support falls short of enabling a means for these activities in a low level domain. An initial survey not only confirms how important these elements are, ...
- ArticleMay 2010
Heuristic Teaching and Practice on Assembly Language Programmng
ICEE '10: Proceedings of the 2010 International Conference on E-Business and E-GovernmentPages 4097–4099https://doi.org/10.1109/ICEE.2010.1028A new teaching method----“realization of goal” is proposed considering the characteristics of the assembly language course with being hard to understand and needing hardware theory. According to the method, classroom teaching is combined with autonomic ...
- research-articleMarch 2010
The pep/8 memory tracer: visualizing activation records on the run-time stack
SIGCSE '10: Proceedings of the 41st ACM technical symposium on Computer science educationPages 371–375https://doi.org/10.1145/1734263.1734389This paper presents a virtual machine simulator with a memory trace facility having two unique features. First, the machine is designed to illustrate the translation from C/C++ to assembly language and from thence to machine language. Instead of the ...
- ArticleNovember 2009
Assembly Reverse Analysis on Malicious Code of Web Rootkit Trojan
WISM '09: Proceedings of the 2009 International Conference on Web Information Systems and MiningPages 501–504https://doi.org/10.1109/WISM.2009.107Web rootkits Trojan, which can download virus from remote control server and hide in BIOS, is very harmful to web security. Reverse assembly analysis on web rootkit Trojan can help virus analyzer to trace malicious code and find some immunization ...
- ArticleDecember 2008
An Assessment Tool for Assembly Language Programming
CSSE '08: Proceedings of the 2008 International Conference on Computer Science and Software Engineering - Volume 05Pages 882–884https://doi.org/10.1109/CSSE.2008.111Assembly language programming courses inevitably include the need to assess programs submitted by the students. However, the task of grading solutions to student programming exercises is laborious. This paper describes a system for the automatic ...
- research-articleNovember 2008
Designing Then and Now
Over the past 25 years, we've made great advances in tooling, technologies, and techniques that make software design more concrete. But design still requires careful thought.
- research-articleNovember 2008
Back to the Future
Over the past 25 years, we've made great advances in tooling, technologies, and techniques that make software design more concrete. But design still requires careful thought.
- ArticleJuly 2008
Two-way coupled finite automata and its usage in translators
This article defines two-way coupled finite automata. Two-way coupled finite automaton enable to make a translation from input language to output language and from output language to input language too. There is discussed deterministic parsing by using ...
- articleJanuary 2008
JVMVIEWER: an interactive bytecode interpreter for Java
This paper describes an interactive implementation of a Java Virtual Machine (JVM) simulator for interpreting Java bytecodes created either from the Java compiler or from an assembler such as Jasmin. Designed for ease of use, the simulator provides ...