Arm® Compiler User Guide Copyright © 2016–2020 Arm Limited Or Its Affiliates

Total Page:16

File Type:pdf, Size:1020Kb

Arm® Compiler User Guide Copyright © 2016–2020 Arm Limited Or Its Affiliates Arm® Compiler Version 6.15 User Guide Copyright © 2016–2020 Arm Limited or its affiliates. All rights reserved. 100748_0615_01_en Arm® Compiler Arm® Compiler User Guide Copyright © 2016–2020 Arm Limited or its affiliates. All rights reserved. Release Information Document History Issue Date Confidentiality Change 0606-00 04 November 2016 Non-Confidential Arm Compiler v6.6 Release 0607-00 05 April 2017 Non-Confidential Arm Compiler v6.7 Release 0608-00 30 July 2017 Non-Confidential Arm Compiler v6.8 Release. 0609-00 25 October 2017 Non-Confidential Arm Compiler v6.9 Release. 0610-00 14 March 2018 Non-Confidential Arm Compiler v6.10 Release. 0611-00 25 October 2018 Non-Confidential Arm Compiler v6.11 Release. 0612-00 27 February 2019 Non-Confidential Arm Compiler v6.12 Release. 0613-00 09 October 2019 Non-Confidential Arm Compiler v6.13 Release. 0614-00 26 February 2020 Non-Confidential Arm Compiler v6.14 Release. 0615-00 07 October 2020 Non-Confidential Arm Compiler v6.15 Release. 0615-01 14 December 2020 Non-Confidential Documentation update 1 for Arm Compiler v6.15 Release. Non-Confidential Proprietary Notice This document is protected by copyright and other related rights and the practice or implementation of the information contained in this document may be protected by one or more patents or pending patent applications. No part of this document may be reproduced in any form by any means without the express prior written permission of Arm. No license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated. Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use the information for the purposes of determining whether implementations infringe any third party patents. THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE DOCUMENT. For the avoidance of doubt, Arm makes no representation with respect to, and has undertaken no analysis to identify or understand the scope and content of, third party patents, copyrights, trade secrets, or other rights. This document may include technical inaccuracies or typographical errors. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. This document consists solely of commercial items. You shall be responsible for ensuring that any use, duplication or disclosure of this document complies fully with any relevant export laws and regulations to assure that this document or any portion thereof is not exported, directly or indirectly, in violation of such export laws. Use of the word “partner” in reference to Arm’s customers is not intended to create or refer to any partnership relationship with any other company. Arm may make changes to this document at any time and without notice. If any of the provisions contained in these terms conflict with any of the provisions of any click through or signed written agreement covering this document with Arm, then the click through or signed written agreement prevails over and supersedes the conflicting provisions of these terms. This document may be translated into other languages for convenience, and you agree that if 100748_0615_01_en Copyright © 2016–2020 Arm Limited or its affiliates. All rights 2 reserved. Non-Confidential Arm® Compiler there is any conflict between the English version of this document and any translation, the terms of the English version of the Agreement shall prevail. The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks of Arm Limited (or its subsidiaries) in the US and/or elsewhere. All rights reserved. Other brands and names mentioned in this document may be the trademarks of their respective owners. Please follow Arm’s trademark usage guidelines at http://www.arm.com/company/policies/ trademarks. Copyright © 2016–2020 Arm Limited (or its affiliates). All rights reserved. Arm Limited. Company 02557590 registered in England. 110 Fulbourn Road, Cambridge, England CB1 9NJ. (LES-PRE-20349) Confidentiality Status This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to. Unrestricted Access is an Arm internal classification. Product Status The information in this document is Final, that is for a developed product. Web Address developer.arm.com Progressive terminology commitment Arm values inclusive communities. Arm recognizes that we and our industry have used terms that can be offensive. Arm strives to lead the industry and create change. We believe that this document contains no offensive terms. If you find offensive terms in this document, please contact [email protected]. 100748_0615_01_en Copyright © 2016–2020 Arm Limited or its affiliates. All rights 3 reserved. Non-Confidential Contents Arm® Compiler User Guide Preface About this book ..................................................... ..................................................... 12 Chapter 1 Getting Started 1.1 Introduction to Arm® Compiler 6 .............................................................................. 1-16 1.2 About the Arm® Compiler toolchain assemblers ...................................................... 1-19 1.3 Installing Arm® Compiler .......................................................................................... 1-20 1.4 Accessing Arm® Compiler from Arm® Development Studio .................. .................. 1-21 1.5 Accessing Arm® Compiler from the Arm® Keil® µVision® IDE ................. ................. 1-22 1.6 Compiling a Hello World example ..................................... ..................................... 1-23 1.7 Using the integrated assembler ....................................... ....................................... 1-25 1.8 Running bare-metal images .................................................................................... 1-27 1.9 Architectures supported by Arm® Compiler .............................. .............................. 1-28 1.10 Using Arm® Compiler securely in a shared environment .................... .................... 1-29 Chapter 2 Getting Started with the SVE features in Arm® Compiler 2.1 Introducing SVE ................................................... ................................................... 2-31 2.2 Assembling SVE code .............................................. .............................................. 2-32 2.3 Disassembling SVE object files ....................................... ....................................... 2-34 2.4 Running a binary in an AEMv8-A Base Fixed Virtual Platform (FVP) .......... .......... 2-35 Chapter 3 Using Common Compiler Options 3.1 Mandatory armclang options ......................................... ......................................... 3-39 3.2 Common Arm® Compiler toolchain options .............................................................. 3-41 100748_0615_01_en Copyright © 2016–2020 Arm Limited or its affiliates. All rights 4 reserved. Non-Confidential 3.3 Selecting source language options .......................................................................... 3-44 3.4 Selecting optimization options ........................................ ........................................ 3-48 3.5 Building to aid debugging ........................................................................................ 3-52 3.6 Linking object files to produce an executable .......................................................... 3-53 3.7 Linker options for mapping code and data to target memory .................................. 3-54 3.8 Passing options from the compiler to the linker ........................... ........................... 3-55 3.9 Controlling diagnostic messages ...................................... ...................................... 3-56 3.10 Selecting floating-point options ................................................................................ 3-61 3.11 Compilation tools command-line option rules .......................................................... 3-64 Chapter 4 Writing Optimized Code 4.1 Effect of the volatile keyword on compiler optimization ..................... ..................... 4-66 4.2 Optimizing loops ...................................................................................................... 4-69 4.3 Inlining functions ...................................................................................................... 4-74 4.4 Stack use in C and C++ ............................................. ............................................. 4-76 4.5 Packing data structures ............................................. ............................................. 4-79 4.6 Optimizing for code size or performance ................................ ................................ 4-83 4.7 Methods of minimizing function parameter passing overhead ...............................
Recommended publications
  • Debugging with GDB
    Debugging with GDB The gnu Source-Level Debugger HP Seventeenth Edition, for GDB January 2007 Richard Stallman, Roland Pesch, Stan Shebs, et al. (Send bugs and comments on GDB to [email protected] with copy to [email protected] ) Debugging with GDB TEXinfo 2003-02-03.16 Copyright c 2007 Free Software Foundation, Inc. Published by the Free Software Foundation 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA ISBN 1-882114-77-9 Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions. i Table of Contents Summary of GDB............................. 1 Free software ................................................ 1 Contributors to GDB......................................... 1 1 A Sample GDB Session .................... 5 1.1 Loading the Executable .................................. 5 1.2 Setting Display width.................................... 6 1.3 Setting Breakpoints ..................................... 6 1.4 Running the executable under GDB ...................... 6 1.5 Stepping to the next line in the source program............ 6 1.6 Stepping into a subroutine ............................... 6 1.7 Examining the Stack .................................... 7 1.8 Printing Variable Values ................................. 7 1.9 Listing Source Code ..................................... 7 1.10 Setting Variable Values During a Session ................. 8 2 Getting In and Out of GDB ..............
    [Show full text]
  • Portable Executable File Format
    Chapter 11 Portable Executable File Format IN THIS CHAPTER + Understanding the structure of a PE file + Talking in terms of RVAs + Detailing the PE format + The importance of indices in the data directory + How the loader interprets a PE file MICROSOFT INTRODUCED A NEW executable file format with Windows NT. This for- mat is called the Portable Executable (PE) format because it is supposed to be portable across all 32-bit operating systems by Microsoft. The same PE format exe- cutable can be executed on any version of Windows NT, Windows 95, and Win32s. Also, the same format is used for executables for Windows NT running on proces- sors other than Intel x86, such as MIPS, Alpha, and Power PC. The 32-bit DLLs and Windows NT device drivers also follow the same PE format. It is helpful to understand the PE file format because PE files are almost identi- cal on disk and in RAM. Learning about the PE format is also helpful for under- standing many operating system concepts. For example, how operating system loader works to support dynamic linking of DLL functions, the data structures in- volved in dynamic linking such as import table, export table, and so on. The PE format is not really undocumented. The WINNT.H file has several struc- ture definitions representing the PE format. The Microsoft Developer's Network (MSDN) CD-ROMs contain several descriptions of the PE format. However, these descriptions are in bits and pieces, and are by no means complete. In this chapter, we try to give you a comprehensive picture of the PE format.
    [Show full text]
  • IBM AIX Version 6.1 Differences Guide
    Front cover IBM AIX Version 6.1 Differences Guide AIX - The industrial strength UNIX operating system AIX Version 6.1 enhancements explained An expert’s guide to the new release Roman Aleksic Ismael "Numi" Castillo Rosa Fernandez Armin Röll Nobuhiko Watanabe ibm.com/redbooks International Technical Support Organization IBM AIX Version 6.1 Differences Guide March 2008 SG24-7559-00 Note: Before using this information and the product it supports, read the information in “Notices” on page xvii. First Edition (March 2008) This edition applies to AIX Version 6.1, program number 5765-G62. © Copyright International Business Machines Corporation 2007, 2008. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Figures . xi Tables . xiii Notices . xvii Trademarks . xviii Preface . xix The team that wrote this book . xix Become a published author . xxi Comments welcome. xxi Chapter 1. Application development and system debug. 1 1.1 Transport independent RPC library. 2 1.2 AIX tracing facilities review . 3 1.3 POSIX threads tracing. 5 1.3.1 POSIX tracing overview . 6 1.3.2 Trace event definition . 8 1.3.3 Trace stream definition . 13 1.3.4 AIX implementation overview . 20 1.4 ProbeVue . 21 1.4.1 ProbeVue terminology. 23 1.4.2 Vue programming language . 24 1.4.3 The probevue command . 25 1.4.4 The probevctrl command . 25 1.4.5 Vue: an overview. 25 1.4.6 ProbeVue dynamic tracing example . 31 Chapter 2. File systems and storage. 35 2.1 Disabling JFS2 logging .
    [Show full text]
  • CPE 323 Introduction to Software Reverse Engineering in Embedded Computer Systems
    CPE 323 Introduction to Software Reverse Engineering in Embedded Computer Systems Aleksandar Milenković Email: [email protected] Web: http://www.ece.uah.edu/~milenka Objective: Introduce tools and methods for software reverse engineering in embedded systems Contents Contents ...................................................................................................................................... 1 1 Introduction ............................................................................................................................. 2 2 Format of Executable Files ...................................................................................................... 2 3 GNU Utilities ............................................................................................................................ 6 4 Deconstructing Executable Files: An Example ....................................................................... 10 5 Working with HEX Files and MSP430Flasher Utility .............................................................. 25 6 To Learn More ....................................................................................................................... 29 CPE 323: Software Reverse Engineering © A. Milenković 1 1 Introduction In this section we will introduce basic concepts, tools, and techniques for software reverse engineering with a special emphasis on embedded computer systems. Reverse engineering in general is a process of deconstructing man-made artifacts with a goal to reveal their designs and architecture
    [Show full text]
  • Archive and Compressed [Edit]
    Archive and compressed [edit] Main article: List of archive formats • .?Q? – files compressed by the SQ program • 7z – 7-Zip compressed file • AAC – Advanced Audio Coding • ace – ACE compressed file • ALZ – ALZip compressed file • APK – Applications installable on Android • AT3 – Sony's UMD Data compression • .bke – BackupEarth.com Data compression • ARC • ARJ – ARJ compressed file • BA – Scifer Archive (.ba), Scifer External Archive Type • big – Special file compression format used by Electronic Arts for compressing the data for many of EA's games • BIK (.bik) – Bink Video file. A video compression system developed by RAD Game Tools • BKF (.bkf) – Microsoft backup created by NTBACKUP.EXE • bzip2 – (.bz2) • bld - Skyscraper Simulator Building • c4 – JEDMICS image files, a DOD system • cab – Microsoft Cabinet • cals – JEDMICS image files, a DOD system • cpt/sea – Compact Pro (Macintosh) • DAA – Closed-format, Windows-only compressed disk image • deb – Debian Linux install package • DMG – an Apple compressed/encrypted format • DDZ – a file which can only be used by the "daydreamer engine" created by "fever-dreamer", a program similar to RAGS, it's mainly used to make somewhat short games. • DPE – Package of AVE documents made with Aquafadas digital publishing tools. • EEA – An encrypted CAB, ostensibly for protecting email attachments • .egg – Alzip Egg Edition compressed file • EGT (.egt) – EGT Universal Document also used to create compressed cabinet files replaces .ecab • ECAB (.ECAB, .ezip) – EGT Compressed Folder used in advanced systems to compress entire system folders, replaced by EGT Universal Document • ESS (.ess) – EGT SmartSense File, detects files compressed using the EGT compression system. • GHO (.gho, .ghs) – Norton Ghost • gzip (.gz) – Compressed file • IPG (.ipg) – Format in which Apple Inc.
    [Show full text]
  • Anti-Executable Standard User Guide 2 |
    | 1 Anti-Executable Standard User Guide 2 | Last modified: October, 2015 © 1999 - 2015 Faronics Corporation. All rights reserved. Faronics, Deep Freeze, Faronics Core Console, Faronics Anti-Executable, Faronics Device Filter, Faronics Power Save, Faronics Insight, Faronics System Profiler, and WINSelect are trademarks and/or registered trademarks of Faronics Corporation. All other company and product names are trademarks of their respective owners. Anti-Executable Standard User Guide | 3 Contents Preface . 5 Important Information. 6 About Faronics . 6 Product Documentation . 6 Technical Support . 7 Contact Information. 7 Definition of Terms . 8 Introduction . 10 Anti-Executable Overview . 11 About Anti-Executable . 11 Anti-Executable Editions. 11 System Requirements . 12 Anti-Executable Licensing . 13 Installing Anti-Executable . 15 Installation Overview. 16 Installing Anti-Executable Standard. 17 Accessing Anti-Executable Standard . 20 Using Anti-Executable . 21 Overview . 22 Configuring Anti-Executable . 23 Status Tab . 24 Verifying Product Information . 24 Enabling Anti-Executable Protection. 24 Anti-Executable Maintenance Mode . 25 Execution Control List Tab . 26 Users Tab. 27 Adding an Anti-Executable Administrator or Trusted User . 27 Removing an Anti-Executable Administrator or Trusted User . 28 Enabling Anti-Executable Passwords . 29 Temporary Execution Mode Tab. 30 Activating or Deactivating Temporary Execution Mode . 30 Setup Tab . 32 Setting Event Logging in Anti-Executable . 32 Monitor DLL Execution . 32 Monitor JAR Execution . 32 Anti-Executable Stealth Functionality . 33 Compatibility Options. 33 Customizing Alerts. 34 Report Tab . 35 Uninstalling Anti-Executable . 37 Uninstalling Anti-Executable Standard . 38 Anti-Executable Standard User Guide 4 | Contents Anti-Executable Standard User Guide |5 Preface Faronics Anti-Executable is a solution that ensures endpoint security by only permitting approved executables to run on a workstation or server.
    [Show full text]
  • Assembly Language Programming
    Experiment 3 Assembly Language Programming Every computer, no matter how simple or complex, has a microprocessor that manages the computer's arithmetical, logical and control activities. A computer program is a collection of numbers stored in memory in the form of ones and zeros. CPU reads these numbers one at a time, decodes them and perform the required action. We term these numbers as machine language. Although machine language instructions make perfect sense to computer but humans cannot comprehend them. A long time ago, someone came up with the idea that computer programs could be written using words instead of numbers and a new language of mnemonics was de- veloped and named as assembly language. An assembly language is a low-level programming language and there is a very strong (generally one-to-one) correspondence between the language and the architecture's machine code instructions. We know that computer cannot interpret assembly language instructions. A program should be developed that performs the task of translating the assembly language instructions to ma- chine language. A computer program that translates the source code written with mnemonics into the executable machine language instructions is called an assembler. The input of an assembler is a source code and its output is an executable object code. Assembly language programs are not portable because assembly language instructions are specific to a particular computer architecture. Similarly, a different assembler is required to make an object code for each platform. The ARM Architecture The ARM is a Reduced Instruction Set Computer(RISC) with a relatively simple implementation of a load/store architecture, i.e.
    [Show full text]
  • Elfbac: Using the Loader Format for Intent-Level Semantics and Fine-Grained Protection
    ELFbac: Using the Loader Format for Intent-Level Semantics and Fine-Grained Protection Julian Bangert, Sergey Bratus, Rebecca Shapiro, Michael E. Locasto,∗ Jason Reeves, Sean W. Smith, Anna Shubina Computer Science Technical Report TR2013-727 Dartmouth College June 14, 2013 Abstract Adversaries get software to do bad things by rewriting memory and changing control flow. Current approaches to protecting against these attacks leave many exposures; for example, OS-level filesystem protection and OS/architecture support of the userspace/kernelspace distinction fail to protect corrupted userspace code from changing userspace data. In this paper we present a new approach: using the ELF/ABI sections already produced by the standard binary toolchain to define, specify, and enforce fine-grained policy within an application's address space. We experimentally show that enforcement of such policies would stop a large body of current attacks and discuss ways we could extend existing architecture to more efficiently provide such enforcement. Our approach is designed to work with existing ELF executables and the GNU build chain, but it can be extended into the compiler toolchains to support code annotations that take advantage of ELFbac enforcement|while maintaining full compatibility with the existing ELF ABI. 1 Introduction This paper presents the design and implementation of ELFbac (ELF behavior access control), a mechanism that separates different components of a program's memory space at runtime and polices their interactions to enforce the intended pattern of these interactions at the granularity compatible with the program's ABI format units such as ELF sections. Modern programs are primarily built by composing libraries, modules, classes, and objects into some cohesive whole.
    [Show full text]
  • James Moscola Dept. of Engineering & Computer Science York College
    ECE260: Fundamentals of Computer Engineering Translation of High-Level Languages James Moscola Dept. of Engineering & Computer Science York College of Pennsylvania ECE260: Fundamentals of Computer Engineering Based on Computer Organization and Design, 5th Edition by Patterson & Hennessy Translation of High-Level Languages • Writing code in assembly is time consuming and can be challenging • A single line of C code may require many lines of assembly • Example: D[4 + i] = A[5 * j] + 6; • Must manage limited register set and stack • High-level languages exist to make programming computers easier • Abstract away many of the complexities of the underlying hardware • Increase programmer productivity • Compilers exist to automate translation from a high-level language into assembly • Typically integrated with an assembler and a linker to produce executable code ECE260: Fundamentals of Computer Engineering 2 Translation and Startup of a Program • Translation and startup of a program includes the following steps: • Programmer writes some code • Compiler translates code into assembly • Assembly is converted into an object file • Linker “stitches” together object files to produce an executable file • At a later time, when the executable file is executed • A loader loads the executable instructions and data into memory ECE260: Fundamentals of Computer Engineering 3 Compiling Code • Programmer may write code in multiple files Compiler Input and Output Files INPUT FILES OUTPUT FILES • Program written in C may include many main.c ➔ main.asm prog1.c ➔ prog1.asm
    [Show full text]
  • Getting Started Creating Applications with Μv Ision ®4
    Getting Started Creating Applications with µV ision ®4 For 8-bit, 16-bit, and 32-bit Microcontrollers www.keil.com 2 Preface Information in this document is subject to change without notice and does not represent a commitment on the part of the manufacturer. The software described in this document is furnished under license agreement or nondisclosure agreement and may be used or copied only in accordance with the terms of the agreement. It is against the law to copy the software on any medium except as specifically allowed in the license or nondisclosure agreement. The purchaser may make one copy of the software for backup purposes. No part of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or information storage and retrieval systems, for any purpose other than for the purchaser’s personal use, without written permission. Copyright © 1997-2009 Keil, Tools by ARM, and ARM Ltd. All rights reserved. Keil Software and Design ®, the Keil Software Logo, µVision ®, RealView ®, C51™, C166™, MDK™, RL-ARM™, ULINK ®, Device Database ®, and ARTX™ are trademarks or registered trademarks of Keil, Tools by ARM, and ARM Ltd. Microsoft ® and Windows™ are trademarks or registered trademarks of Microsoft Corporation. PC ® is a registered trademark of International Business Machines Corporation. NOTE This manual assumes that you are familiar with Microsoft Windows and the hardware and instruction set of the ARM7, ARM9, Cortex-Mx, C166, XE166, XC2000, or 8051 microcontroller. Every effort was made to ensure accuracy in this manual and to give appropriate credit to persons, companies, and trademarks referenced herein.
    [Show full text]
  • DESIGN and Implementanon of a WORLD WIDE
    DESIGN AND IMPLEMENTAnON OF A WORLD WIDE WEB BASED DISTRIBUTED COMPUTING MODEL By WENXIAPENG Master ofArts Peking University Beijing, China 1995 Bachelor of Arts East China Normal University Shanghai, China 1988 Submitted to the Faculty ofthe Graduate College ofthe Oklahoma State University in partial fulfillment of the requirements for the Degree of MASTER OF SCIENCE December, 2000 DESIGN AND IMPLEMENTAnON OF A WORLD WIDE WEB BASED DISTRIBUTED COMPUTING MODEL Thesis Approved: --~----- _--E-..&-~~,---._ De~Graduate ~ ii ACKNOWLEDGMENTS I would like to express my sincere appreciation to my major advisor Dr. K. M. George for his intelligent supervision, constructive guidance, and encouragement through my M. S. thesis work. My sincere appreciation extends to my thesis committee members, Dr. G. E. Hedrick and Dr. Nohpill Park for their valuable assistance and encouragement. I wish to give my special appreciation to my husband, Qing Li, for his love, encouragement, and precious assistance in my study and life. I also wish to express my gratitude to my mother-in-law, Guohua Liu, for her significant support and understanding throughout the whole process. Finally, I would like to give my thanks to my darling baby girl, Grace Jiayun Li, and my precious newborn boy, Benjamin Jiayi Li, sinc they brighten my life. III TABLE OF CONTE TS Chapter Pag I. INTRODUCTION " I 1.1 Distributed Computing and Implementation Model 1 1.2 A ew Model , 3 1.3 Objectives ofThis Thesis 4 1.4 Outline ofThesis 5 II. REVIEW OF LITERATURE AND RELATED WORK 6 2.1 Review ofDistributed Systems and Distributed Computing 6 2.1.1 CORBA 8 2.1.2 Java RMI.
    [Show full text]
  • Stealth Secrets of the Malware Ninjas
    Stealth Secrets of the Malware Ninjas By Nick Harbour Overview Intro Background Info • Malware • Forensics and Incident Response • Anti-Forensics • Executables Stealth Techniques • Live System Anti-Forensics Process Camouflage Process Injection Executing Code from Memory • Offline Anti-Forensics File Hiding Trojanizing Anti-Reverse Engineering There will be something for the “Good Guys” near the end • A brand new malware scanning tool 2 Introduction This presentation will cover a variety of stealth techniques currently used by malware in the field. Many of the techniques are based on malware studied during MANDIANT’s incident experiences. 3 Introduction The purpose of this talk is to discuss malware stealth techniques other than Rootkits. The majority of the material is designed to teach the “Bad Guys” some practical real world techniques to fly beneath the radar. For the “Good Guys”, learning these malicious techniques will help prepare you to identify and counter malware threats. 4 Prerequisites There’s something for everyone! The material we will cover the range from basic computing concepts to machine code. We will primarily be discussing techniques for Windows, but Linux will also discussed at an advanced level. 5 Background Information Malware In intrusion incidents, malware is frequently found in several inter-related families of tools. Often found in redundant layers for failover or bootstrapping. Command and Control Data Collection Data Transfer Cracking/Exploitation 7 Malware In practice, stealth techniques are most often employed to protect an intruder’s command and control mechanism These often require persistence which poses a risk of discovery Command and Control is the keys to the intruder’s newly acquired kingdom 8 Forensics and Incident Response Traditional Computer Forensics involves examining the contents of computer media for evidence of a crime.
    [Show full text]