PracticalVideo GameBots Automating Game Processes using C++, Python, and AutoIt Ilya Shpigor Practical Video GameBotsAutomating Game Processesusing C++, Python, and AutoItIlya ShpigorPractical Video Game Bots: Automating Game Processes using C++, Python,and AutoIt Ilya Shpigor St. Petersburg, c.St-Peterburg, Russia ISBN-13 (pbk): 978-1-4842-3735-9 ISBN-13 (electronic): 978-1-4842-3736-6 https://doi.org/10.1007/978-1-4842-3736-6 Library of Congress Control Number: 2018954729 Copyright 2018 by Ilya Shpigor This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Steve Anglin Development Editor: Matthew Moodie Coordinating Editor: Mark Powers Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm. com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc).
SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail editorial@apress.com; for reprint, paperback, or audio rights, please email bookpermissions@springernature.com. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the books product page, located at www.apress.com/9781484237359.
For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper Table of Contents iii Table of ConTenTs iv Table of ConTenTs v Table of ConTenTs vi About the AuthorIlya Shpigor is a software developer and open source enthusiast. He has significant experience in such domains as Embedded Systems, Information Security, and Real-Time Computing. Ilya currently works in the automotive industry. He develops security systems for Ethernet networks in cars. Before that, he developed intrusion detection systems, flight simulators, and control systems for sea ships.
Also, he has participated in the Wine open source project and ALT Linux distribution. Ilya is interested in automating routine tasks and researching the capacities of different programming languages to solve specific problems. In his free time, he explores software vulnerabilities and AI approaches. vii About the Technical ReviewerMassimo Nardone has more than 24 years of experience in Security, Web/Mobile Development, Cloud, and IT Architecture. His true IT passions are Security and Android. He has been programming and teaching how to program with Android, Perl, PHP, Java, VB, Python, C/C++, and MySQL for more than 20 years.
He holds a Master of Science degree in Computing Science from the University of Salerno, Italy. He has worked as a Project Manager, Software Engineer, Research Engineer, Chief Security Architect, Information Security Manager, PCI/SCADA Auditor, and Senior Lead IT Security/Cloud/SCADA Architect for many years. His technical skills include Security, Android, Cloud, Java, MySQL, Drupal, Cobol, Perl, Web and Mobile development, MongoDB, D3, Joomla, Couchbase, C/C++, WebGL, Python, Pro Rails, Django CMS, Jekyll, Scratch, etc. He has worked as a visiting lecturer and supervisor for exercises at the Networking Laboratory of the Helsinki University of Technology (Aalto University). He holds four international patents (PKI, SIP, SAML, and Proxy areas). He currently works as Chief Information Security Officer (CISO) for Cargotec Oyj and is a member of the ISACA Finland Chapter Board.
Massimo has reviewed more than 45 IT books for different publishing companies and is the coauthor of Pro Android Games (Apress, 2015), Pro JPA 2 in Java EE 8 (Apress, 2018), and Beginning EJB in Java EE 8 (Apress, 2018). ix Acknowledgments A special thank you to Svetlana Zalogina, who reviewed the first chapters of this book and provided many style recommendations. Also, I would like to thank Danila Bogdanov and Emil Shaykhilislamov, who pointed out my mistakes and gave me advice on how to cover the game bot topic better. Thanks to Ruslan Piasetskyi, who explained to me some subtleties of the cryptography domain. xi Preface This is not a guide on how to cheat and violate rules in video games. This is a book about approaches to automating a game process and protecting it against automation.
We will consider applications that play video games in your place; they are named bots. You will find here a classification of such applications by their internal mechanics. The book covers most methods and technologies that are used by bot developers. Also, the various approaches of anticheating systems are considered here. This book provides solutions and useful advices for such topics as process automation, reverse engineering, encryption, and network applications. xiii Introduction Sometimes when you play your favorite video game, you can find yourself repeating simple actions. xiii Introduction Sometimes when you play your favorite video game, you can find yourself repeating simple actions.
Perhaps this process reminds you of working with old manual machines. You would mount a piece of metal, press the button to launch the drill, pull the lever down, and so forth. But wait a minute. We live in the 21st century, and long before us people have learned ways to automate simple, monotonous actions. These thoughts occurred to me while I was playing my favorite video game. After that, I decided to start looking for ways to automate my game process.
I have visited plenty of forums and websites. Most of the applications for game automation that I found contained malicious software. Some of them were virus-free, but they did not work at all. During my searches, people with strange nicknames suggested that I buy these black magic applications that should solve all my problems. But it seems pretty weird to buy something from an anonymous person over the Internet without any guarantees. Further, I realized why bot developers prefer to hide their names.
Next page