<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Retro64.xyz</title><description>Real heroes don't wear capes. Real superheroes wear uniforms and badges and stethoscopes! Real superheroes are members of our military, law enforcement, and first responders. Pretend superheroes wear capes! - Dean Cain</description><link>https://retro64xyz.gitlab.io/</link><atom:link href="https://retro64xyz.gitlab.io/feed.xml" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Apr 2026 19:28:50 +0000</pubDate><lastBuildDate>Sun, 12 Apr 2026 19:28:50 +0000</lastBuildDate><generator>Hugo 0.139.0</generator><item><title>Introduction To WiFi Hacking</title><description>&lt;!--toc-->
&lt;h2 id="performance-objective">Performance Objective&lt;/h2>
&lt;p>At the conclusion of the course the student will be able to:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Identify one site that can assist you in locating wireless networks.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify one tool used to crack wireless networks.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify what frequency WiFi functions on.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify a tool for phishing WiFi passwords.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Wireless Fidelity, or WiFi, is a type of technology employed to provide
connectivity to a computer network without cable or hardwired connection. WiFi
works within the 2.4Ghz or 5Ghz range and should not interfere with cellphones,
broadcast radio, television, or hand held radios. WiFi functions by
transmitting data over radio waves between a client device and a device called a
router. This router can then transmit data to systems internally or outwards to
the internet.&lt;/p>
&lt;p>WiFi is used across the planet to simplify the deployment of networks, provide
communication to large numbers of devices, and to increase convenience. While
WiFi is well known, there are additional wireless signals that we may not
consider or think about regularly due to their ubiquitous nature. This includes
cell phones, blue tooth, and other wireless devices.&lt;/p>
&lt;p>WiFi is neither more nor less secure than a traditional hard wired network but
is instead a completely different and less comparable interface. Wired and
wireless both provide a method for devices to communicate but will require
separate thought processes when it comes to security, availability, and
functionality. You can not treat one network the same as the other or expect
them to behave the same.&lt;/p>
&lt;h4 id="wifi-does-not-make-you-sick">WiFi does not make you sick.&lt;/h4>
&lt;p>Extensive research has concluded to date that WiFi does not make you sick or
cause autism. However, there is a growing number of researchers who believe
that the ’nocebo’ effect can cause illness. Fake WiFi devices were strapped to
human test subjects who began to complain of anxiety, head pain, and tingling
feelings. The devices were completely harmless and fake but the human mind was
capable of causing users to feel they were experiencing harm.&lt;/p>
&lt;h2 id="wifi-frequencies">WiFi Frequencies&lt;/h2>
&lt;p>WiFi versions or iterations have changed over the years. WiFi began as an 11
megabit per second method for networking devices but today we now see multi
gigabit speeds. Each iteration has brought about numerous changes and a gradual
increase in performance as well as some changes in security.&lt;/p>
&lt;h4 id="80211b">802.11b&lt;/h4>
&lt;p>Transmits at 2.4GHz and moves data at 11 megabits per second. Released at the
same time as amendment a. 2.4GHz easily experiences interference.&lt;/p>
&lt;h4 id="80211a">802.11a&lt;/h4>
&lt;p>Transmits data at 5GHz. Transmits at a maximum of 54 megabits per second. Uses
OFDM or Orthogonal Frequency Division Multiplexing to enhance reception by
dividing the radio signals into smaller signals before reaching the router.&lt;/p>
&lt;h4 id="80211g">802.11g&lt;/h4>
&lt;p>Transmits at 2.4GHz. Moves data at 54 megabits per second. Uses OFDM technology.&lt;/p>
&lt;h4 id="80211n">802.11n&lt;/h4>
&lt;p>Transmits at 5GHz and 2.4GHz. Moves data at 140 megabits per second with a
theoretical max of 300 Mbps (Maybe 450 with MIMO).&lt;/p>
&lt;h4 id="80211ac">802.11ac&lt;/h4>
&lt;p>Transmits at a theoretical maximum of several Gigabits per second and works
exclusively in the 5 GHz band. Uses beam forming and focuses transmission of
signals directly at devices. Supports Multi User MIMO to increase throughput of
devices and allows several devices to communicate at roughly at the same time.&lt;/p>
&lt;h2 id="wifi-security">WiFi Security&lt;/h2>
&lt;p>The most important thing to remember is that WEP or Wired Equivalent Privacy
was released in 1997 and is completely broken. WEP can be broken in minutes or
less. Your modern devices will neither offer nor function with a WEP network
and most routers no longer support it. Stay far away from WEP.&lt;/p>
&lt;h3 id="wpa-tkip-and-wpa2-aes">WPA-TKIP and WPA2-AES&lt;/h3>
&lt;p>WP or WP-TKIP was an intermediate fix while working towards WPA2. TKIP is
considered fairly vulnerable and should be avoided or turned off. As of this
writing you should be using WPA2-AES as this is considered the most secure
method of security.&lt;/p>
&lt;h2 id="wifi-channels">WiFi Channels&lt;/h2>
&lt;p>US Routers have 11 channels at 2.4GHz and 45 channels for the 5GHz networks.
Adjacent channel interference occurs when devices from overlapping channels
broadcast over each other. The 2.4GHz spectrum has three channels that do not
technically overlap. Channels 1, 6, and 11.&lt;/p>
&lt;h2 id="wifi-aggregation">WiFi Aggregation&lt;/h2>
&lt;p>Your wireless router may support packet aggregation. If it is using 801.11ac it
is mandatory. The concept of packet aggregation is simple. You send two or more
data frames in a single transmission. This reduces overhead and increases
performance. This reduces the overhead of sending many smaller packets that
could reduce performance.&lt;/p>
&lt;h2 id="wifi-ssid-setup">WiFi SSID Setup&lt;/h2>
&lt;p>Should I hide my WiFi SSID? What is an SSID?&lt;/p>
&lt;p>An SSID or Service Set Identified is the beacon that informs individuals in the
area that a wireless network exists and can be connected to. Broadcasting the
SSID makes it very simple for individuals interested in connecting to a network
to find it. However, it is important to understand that obscuring the SSID or
otherwise hiding it does not provide any form of security.&lt;/p>
&lt;p>There are multiple methods by which you can decloak or locate a hidden WiFi
networks and reveal the name. It is considered a trivial action. So when should
we hide our SSID name? When we wish to declutter the local airwaves is
generally the only time it is necessary or relevant. It should not be
considered a security feature or tool but instead a tool of convenience.&lt;/p>
&lt;h2 id="aircrack-ng">Aircrack-ng&lt;/h2>
&lt;p>&lt;a href="https://www.aircrack-ng.org/" title="Aircrack-ng Full Suite">Aircrack-ng&lt;/a> is a complete suite of tools to assess WiFi network
security. ACNG provides monitoring, attacking, testing, and cracking tools.
Aircrack provides the tools necessary to put your wireless cards into monitor
mode using the &lt;code>airmon-ng&lt;/code> command.&lt;/p>
&lt;p>Aircrack-ng is a fantastic tool for testing the security of your network and
conducting attacks on WEP as well as WPA2 if you wish to run a dictionary
attack.&lt;/p>
&lt;h2 id="pixiewps">Pixiewps&lt;/h2>
&lt;p>Pixieswps is a tool you can use for brute forcing WPS pins. WPS is designed in
such a way that it is possible to essentially attack approximately 11,000
combinations in order to get the correct code. This requires approximately 12
seconds to execute and quickly defeats WPS and therefore can assist in
defeating WPA.&lt;/p>
&lt;p>Competitive tools like Reaver claim attack times in the hours but Pixiewps and
the ‘pixie-dust attack’ are capable of defeating WPS and recovering WPA
credentials in seconds. Pixiewps is a tool that was born from a collaboration
that began on the Kali Linux web forums among active members of the community.&lt;/p>
&lt;h2 id="kismet-wireless">Kismet Wireless&lt;/h2>
&lt;p>&lt;a href="https://www.kismetwireless.net/" title="Kismet wireless network detector">Kismet&lt;/a> is a wireless network and device detector, sniffer, wardriving
tool, and wireless intrusion detection framework.&lt;/p>
&lt;h3 id="how-to-find-a-hidden-ssid">How To Find A Hidden SSID&lt;/h3>
&lt;p>With &lt;a href="https://github.com/aircrack-ng/aircrack-ng" title="WiFi securiting auditing tools">aircrack-ng&lt;/a> -&lt;/p>
&lt;pre tabindex="0">&lt;code>$ sudo pacman -S aircrack-ng
$ sudo airmon-ng start wlan0
$ sudo airodump-ng mon0
$ sudo airodump-ng -c 1 --bssid XX:XX:XX:XX:XX:XX mon0
$ sudo aireplay-ng -0 15 -c CLIENT BSSID -a NETWORK BSSID mon0
&lt;/code>&lt;/pre>&lt;h2 id="wifiphisher">Wifiphisher&lt;/h2>
&lt;p>The number one way to conduct an attack on a user and to gain access to their
system is to access for that access. Wifiphisher is a fantastic tool for
conducting that style of attack. It allows you to create a fake Network Manager
Connect Page, Firmware Upgrade Page, OAuth Login Page, or Browser Plugin Update
page and force users to see this on connection to the rogue access point.&lt;/p>
&lt;h3 id="how-to-use-wifiphisher">How to use Wifiphisher&lt;/h3>
&lt;pre tabindex="0">&lt;code>$ yay -S wifiphisher
$ sudo wifiphisher -i URLAN1
&lt;/code>&lt;/pre>&lt;p>Wifiphisher is easy to install and use and simply requires &lt;code>sudo&lt;/code> access and an
ability to follow a prompt.&lt;/p>
&lt;h3 id="wps-and-wifite">WPS and Wifite&lt;/h3>
&lt;p>Attacking &lt;a href="https://archive.is/BSVyo" title="How to crack wps with wifite">WPS with Wifite&lt;/a> is relatively simple. You run a
WiFi device in monitor mode, choose your target, and wait.&lt;/p>
&lt;h3 id="wpa2-and-wifite">WPA2 and Wifite&lt;/h3>
&lt;pre tabindex="0">&lt;code>$ wifite -mac -aircrack -dict /usr/share/wordlists/passwords.txt
&lt;/code>&lt;/pre>&lt;h2 id="wids-with-kismet">WIDS with Kismet&lt;/h2>
&lt;p>Kismet provides a method by which you can detect rogue wireless access points,
monitor the local area, and alert. Creating or purchasing a wireless intrusion
detection system will greatly enhance the safety of your network and users.&lt;/p>
&lt;p>Users will setup their own methods to avoid road blocks and will often do so
with little regard to the sanctity of the network or security in general. You
may also have users who have learned to conduct a Denial of Service and now
revel in causing disruption. You need to be able to look for and identify noise
and congestion.&lt;/p>
&lt;p>You may also have intruders or attackers who want access to your network to
cause harm. They may be looking for payment data, Personally Identifiable
Information, or methods by which to pivot to other resources. An attacker may
compromise a network in order to attack the clients of that company. External
attacks can be devastating but worse yet is the internal attack.&lt;/p>
&lt;p>It should also be noted that WIDS are not perfect and it can be exceptionally
difficult to know what is or is not authorized on your network. Bring Your Own
Device is changing how we work and alleviating costs but increasing
vulnerabilities on the network. A WIDS may not be able to identify or
fingerprint many vulnerabilities. You must also have plenty of space and the
capability of monitoring trends over time or else you will not be able to see
what is really happening. A single packet event will rarely reveal an issue.&lt;/p>
&lt;h2 id="wave-bubble">Wave Bubble&lt;/h2>
&lt;p>Users can construct or purchase a &lt;a href="http://www.ladyada.net/make/wavebubble/index.html" title="The Wave Bubble">wave bubble&lt;/a> and have the
capability of jamming a large amount of the RF spectrum. This will include
cordless phones, GPS, wifi, bluetooth and potentially more within a 20 foot
radius.&lt;/p>
&lt;p>It should be noted that documented uses of devices like the wave bubble within
the United States is relatively sparse. However, in countries like South
Africa, similar tools are deployed during perpetration of violent crime. A man
portable backpack sized jammer is regularly deployed by criminals who can jam
communications up to nearly a half mile. After jamming locals communications
the criminals will then conduct an attack.&lt;/p>
&lt;p>Unconfirmed reports of American discussion of this tactic among potential
threat actors has occurred online on varying discussion sites for these groups.
The idea that an individual could deploy a tool like this in an ambush setting
or during a home invasion has been shared in a manner similar to what is
happening over seas.&lt;/p>
&lt;h2 id="gnu-radio">GNU Radio&lt;/h2>
&lt;p>GNU Radio is a free and open source tool that provides signal processing blocks
to implement software defined radio. Low Cost and easily available RF hardware
can be deployed to assist in hobby, academic, and even commercial environments.&lt;/p>
&lt;p>GNU Radio performs signal processing. You can work with GNU Radio without
writing code but it is recommend that you have the ability to work comfortably
in a language like python in order to get the most out of this tool.&lt;/p>
&lt;h2 id="wigle">Wigle&lt;/h2>
&lt;p>&lt;a href="https://www.wigle.net/" title="All the networks. Found by Everyone.">Wigle&lt;/a> is a website and mobile tool that is used for creating physical
maps of where wifi networks are located. Wigle tracks approximately 600,000,000
networks and reports on them using reporters who help locate these items.&lt;/p>
&lt;p>It is also possible to use Wigle to locate cellular towers which introduces a
different set of issues. Russia is working on installing Pole-21 anti missile
jamming systems on their various civilian cellular network towers. While groups
within the United States have been discussing the feasibility of attack
critical infrastructure like communication towers and the like.&lt;/p>
&lt;p>Wigle is simple to use and allows you to look for wireless access points based
on vicinity. This can reveal whether or not someone is in an area or operating
in an area. Wigle is an excellent tool for conducting reconnaissance on a site
remotely.&lt;/p>
&lt;h2 id="answers">Answers&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Wigle is a site that can be used for locating wireless networks.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Aircrack-ng can be used to crack wireless networks.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Wifi normally functions on 5GHz or 2.4GHz.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Wifiphisher (The Rogue Access Point) is a tool that can be used for phishing
wifi passwords.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>Securing your wireless network goes beyond detecting attacks. A good network
engineer knows what devices are authorized, where they are located, and what
they should be doing. WiFi removes boundaries and with the advent of ‘Bring
Your Own Device Culture’ it is becoming increasingly difficult for admins to
know what is or is not on their network.&lt;/p>
&lt;p>Finding a hidden SSID is trivial. Basic computing tools can be used to defeat
any obfuscation. Rogue access points, targeted attacks, and even phishing can
be deployed to defeat most basic forms of securing a wireless network.&lt;/p>
&lt;p>You must consider implementing a Wireless Intrusion Detection System and treat
your wireless networks as potentially vulnerable at all times. In addition, you
should consider deeply how a WiFi network can reveal additional meta data about
a building, person, or surrounding area. Looking for WiFi and other wireless
signals can reveal tremendous amounts of information about an area and the
activities being conducted there. SIGSEC or Signals Security matters.&lt;/p>
&lt;h2 id="final-recommendations">Final Recommendations&lt;/h2>
&lt;ol>
&lt;li>Choose *nix.&lt;/li>
&lt;li>Secure your network and monitor local traffic.&lt;/li>
&lt;li>Regularly review tools like Wigle for changes in your local area.&lt;/li>
&lt;li>Develop your equipment and gear.&lt;/li>
&lt;li>Choose freedom.&lt;/li>
&lt;/ol></description><pubDate>Tue, 29 Oct 2019 04:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/presentations/2019/10/29/wifi-hacking/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/presentations/2019/10/29/wifi-hacking/</guid><category>presentations</category></item><item><title>Introduction To Assembly Language - Part Two</title><description>&lt;!--toc-->
&lt;h2 id="performance-objective">Performance Objective&lt;/h2>
&lt;p>At the conclusion of the course the student will be able to:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Understand how to locate values in a running application using scanmem.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Understand how to manipulate memory during run time.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify a tool that can be used to automate malware analysis.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify one method by which a VM can be identified by malware.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify one reason for analyzing malware.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Programming at a low level requires intimate knowledge of your hardware.
Understanding how information is stored in ram, accessed by applications, and
eventually disposed of or written to permanent storage is important. We will be
using an application called scanmem in conjunction with the video game Doom to
gain a better understanding of how values can be stored by an application and
located or manipulated by the user. While we will be using a video game for
demonstration purposes it is important to understand that these concepts are
applicable in a wide array of situations.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>You will need the &lt;code>scanmem&lt;/code> program for these exercises. We will be
manipulating the video game Doom to better understand how memory can be
accessed and manipulated in a running application.&lt;/p>
&lt;h3 id="scanmem">Scanmem&lt;/h3>
&lt;pre tabindex="0">&lt;code>$ sudo pacman -S scanmem
&lt;/code>&lt;/pre>&lt;p>&lt;a href="https://github.com/scanmem/scanmem" title="Memory Scanner">Scanmem&lt;/a> allows us to locate and modify variables in an executing
process. The scanmem application is an interactive debugging utility that can
be used to isolate the address of a variable in an executing process by
successively scanning the process address space while looking for matching
values.&lt;/p>
&lt;h3 id="gzdoom">GZDoom&lt;/h3>
&lt;pre tabindex="0">&lt;code>$ yay -S gzdoom
&lt;/code>&lt;/pre>&lt;p>&lt;a href="https://zdoom.org/downloads" title="The GZDoom Player">GZDoom&lt;/a> is an application that can be used to play the video game
Doom. Doom is a 1993 first person shooter made by id Software. Doom has
frequently been cited as one of the most important and greatest games of all time.
Today, GZDoom provides a simple method to run this family of games via packaged
files known as WADS.&lt;/p>
&lt;h2 id="basics">Basics&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Start GZDoom&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Load Doom&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Open a terminal and type &lt;code>pidof gzdoom&lt;/code> or optionally you can run &lt;code>pgrep gzdoom&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Run &lt;code>sudo scanmem 4865&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Type the value we are search for and hit enter while modulating the value
until you locate it.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>You can then SET the value and you will see a result like
&lt;code>info: setting *0x56243f28fe88 to 0x3e7...&lt;/code> that will reveal you have
successfully changed your value.&lt;/p>
&lt;p>Finding, reading, and changing values in memory is an iportant aspect of
debugging as well as learning how applications function.&lt;/p>
&lt;h3 id="pgrep-vs-pidof">pgrep VS pidof&lt;/h3>
&lt;p>pgrep can match based on regular expressions but pidof is very literal. You can
use either to accomplsih your goal of getting the pid for an application.&lt;/p>
&lt;h3 id="what-is-ram">What is RAM?&lt;/h3>
&lt;p>RAM is an acronym for random access memory. RAM is the storage place for data
that the CPU or central processing unit is working with. RAM is used for
storing temporary data that will normally be flushed on shutdown or reset of
the computer.&lt;/p>
&lt;h3 id="32-bit-versus-64-bit">32-bit versus 64-bit&lt;/h3>
&lt;p>A 32-bit CPU can address a maximum of 4,294,967,296 bytes of RAM. This equals
approximately 4 gigabytes. However, in practice the CPU will generally only be
able to use around 3.5 gigabytes because some of the RAM will need to be
reserved for storing temporary values besides memory addresses.&lt;/p>
&lt;p>A 64-bit CPU can theoretically address 18,446,744,073,709,551,616 bytes, or
17,179,869,184 gigabytes (16 exabytes) of memory. A 64-bit computer can
certainly access more than 3.5 gigabytes of RAM.&lt;/p>
&lt;p>In theory a 64-bit processor is more efficient and capable of operating at much
higher speeds than a 32-bit system because of the ability to address more ram
and to use processor operations for 64-bit code that would not be available to
32-bit users.&lt;/p>
&lt;h2 id="malware-analysis">Malware Analysis&lt;/h2>
&lt;p>Malware analysis is an integral part of the intelligence tool chain that can
reveal who is targetting your organization, how they are doing so, and
potentially what tools they may be using. It is vital that we each contribute
to the knowledge base by becoming familiar with automated tools for analyzing
these attack vectors. Tools like Cuckoo can be deployed in a segregated network
with minimal effort and they can be used to gather information that can be of
importance to law enforcement, investigators, and others.&lt;/p>
&lt;h3 id="setup">Setup&lt;/h3>
&lt;p>The first thing we need to decide on is whether or not we will be using
physical hardware for our analytical purposes or deploying virtual machines for
handling our malware specimens. The simplest and fastest way to get started is
usually virtualization.&lt;/p>
&lt;p>I recommend one of two virtualization engines. VirtualBox or virt-manager in
conjunction with KVM VM’s. Pick one. Your choice of virtual machine is
important but you can work successfully with just about any type of VM
provider.&lt;/p>
&lt;p>You will need plenty of RAM and a large hard drive space. You may want to
strive to have 16 gigabytes or more RAM available on your system. However, it
is important to remember that in a virtualized environment, your malware may be
able to detect it is in a virtual machine. So don’t rely entirely on a virtual
environment. Be prepared to deploy a piece of physical hardware if necessary.&lt;/p>
&lt;h3 id="isolation-and-safety">Isolation And Safety&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>Don’t reuse your equipment. You should not keep personal data on your
analytic machine.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Don’t connect your laboratory and personal equipment to the same network.
Malware is made to infect and to look for footholds. Don’t provide one.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Use a dedicated DSL or Cable Modem for the connection of the system. Don’t
allow the malware in your lab to destroy someone elses system or to attack
yours.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Speed up your work flow through the use of automation. Get low hanging
fruit.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Take notes and keep ample documentation.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="cuckoo">Cuckoo&lt;/h3>
&lt;p>Cuckoo describes malware as the Swiss army knife of cyber criminals. I agree.
The adversary is always looking for a method by which they can gain a foothold
into our network, our life, and our wallet. It is important to understand that
we must be on the look out for all of the methods by which a plethora of
individuals can conduct an attack against us.&lt;/p>
&lt;h3 id="ponderings">Ponderings&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>What do I want to analyze?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>How much analysis do I need to be able to do?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>What platforms am I targeting?&lt;/p>
&lt;/li>
&lt;li>
&lt;p>What do I want to know?&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>We need to decide on operating system, language, patch level, and what software
we plan to have installed. Analysis of something like malware is as much art as
it is science. We need to take a sterile VM and make it look ’lived in’. If you
have no browser history and the malware is designed to hunt for browser
history, this will be an obvious issue.&lt;/p>
&lt;p>We must never forget that our virtualized machines can be detected and
countermeasures against detection must be deployed if we want to get the
maximum amount of data from our tools.&lt;/p>
&lt;h3 id="virtualization-detection">Virtualization Detection&lt;/h3>
&lt;p>Malware can use many tools to detect if it is inside of a virtualized
environment. A small list is provided.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Registry Checking and the presence of specific registry keys or searching
for specific values such as ‘VMware, Inc.’ can potentially reveal the
presence of virtualization.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Memory checking and verifying how memory structures are used. The Store
Interrupt Descriptor Table is higher in a virtual environment than a
physical machine. The malware might also look for Store Local Descriptor
Table, Store Global Descriptor Table, and the Store Task Register.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Malware can run an IN instruction that is normally run from Ring 0. A VM
will allow you to run IN from Ring 3 (The OS) and will return a value of
‘VMxh’ to the EBX register. This confirms the existence of a VM.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>A VMware MAC address can be presumed by a specific numbering.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Other hardware information can also reveal the existence of a VM.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>Countering these issues requires intercepting file and process checks,
countering memory checks, and verifying that the OS is unable to communicate
with the VM. There also exist tools to assist with this like &lt;a href="http://vmcloak.org/" title="Help Cloak Your VM for Cuckoo">vmcloak&lt;/a>.&lt;/p>
&lt;h2 id="answers">Answers&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Scanmem provides an automated method by which we can locate values through
an interface exposed to the user.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Scanmem provides the SET command to allow us to manipulate memory values.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Cuckoo can be used to automate malware analysis.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Malware can identify a VM through querying the registry in a Windows machine.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Malware analysis provides excellent intelligence on who is targeting us.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>Understanding your computer is paramount. Many users feel confidant in their
Linux skills but discover very quickly that their skill set is often lacking in
the basics. Memory, CPU, and all other low level aspects of the computer are
often obfuscated behind the operating system and much of this mysterious real
estate will never be explored by even some advanced users.&lt;/p>
&lt;p>There exist plenty of tools that can be deployed to simplify your job and to
enhance your effectiveness. While some tools do increase complexity in one
realm, they can often have benefits that far outweigh the problems. Consider
using tools like Cuckoo to assist you in automating your malware scanning and
study. You may also consider learning how to follow an application through
execution so that you are better prepared in the event that you need to begin
dismantling or otherwise gaining insight into the tools being used to attack
your network.&lt;/p>
&lt;p>Many users dispose of the malware that is being used to target them without a
second thought. I think this is a poor use of resources. Setting up even a basic
intelligence analysis group for your threats can enhance your safety and the
safety of others tremendously. Learn how to profile threat actors, automate and
triage attacks, and funnel that information towards law enforcement agencies
who can use that data to build cases and develop a course of action for
managing these threats.&lt;/p>
&lt;h2 id="final-recommendations">Final Recommendations&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Use Linux.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Learn more about your computer.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Learn how to take notes.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Develop a plan for enhancing your skills.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Share Information.&lt;/p>
&lt;/li>
&lt;/ol></description><pubDate>Sat, 01 Jun 2019 04:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/presentations/2019/06/01/assembly-language-part-two/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/presentations/2019/06/01/assembly-language-part-two/</guid><category>presentations</category></item><item><title>How do I use Docker and Dropbox to run multiple instances?</title><description>&lt;h2 id="settin-up-docker-and-dropbox">Settin Up Docker And Dropbox&lt;/h2>
&lt;p>&lt;a href="'http://www.shivamkapoor.com/blogs/technology/2018/08/16/configure-unlimited-dropbox-accounts-on-single-pc-seamlessly-using-docker/'" title="Setting Up Docker Dropbox">Shivam Kapoor&lt;/a> created an excellent blog post on how to setup Dropbox
using Docker to allow multiple instances to function on a system. I made some
minor changes and used this to setup a laptop so I can work with multiple
copies of Dropbox without issue.&lt;/p>
&lt;h2 id="how-to">How To&lt;/h2>
&lt;ol>
&lt;li>Install Docker.
&lt;pre tabindex="0">&lt;code>$ sudo pacman -S docker
&lt;/code>&lt;/pre>Use your package manager to install &lt;a href="https://www.docker.com/">Docker&lt;/a>.&lt;/li>
&lt;li>Setup your user.
&lt;pre tabindex="0">&lt;code>$ sudo usermod -aG docker $USER
&lt;/code>&lt;/pre>Setup your user by adding them to the &lt;code>docker&lt;/code> group. This is so you don’t
have to use &lt;code>sudo&lt;/code> to work with Docker.&lt;/li>
&lt;li>Get the Docker Image
&lt;pre tabindex="0">&lt;code>$ docker pull janeczku/dropbox
&lt;/code>&lt;/pre>User janeczku created a docker image that runs dropbox. Review the
&lt;a href="https://hub.docker.com/r/janeczku/dropbox/">code yourself&lt;/a>.&lt;/li>
&lt;li>Create the Docker Machine and the volume
&lt;pre tabindex="0">&lt;code>$ docker run -d --restart=always --name=RENAMETHIS -v /home/aaronj/Dropbox:/dbox/Dropbox -v /home/aaronj/.dropbox:/dbox/.dropbox -e DBOX_UID=1000 -e DBOX_GID=1000 janeczku/dropbox
&lt;/code>&lt;/pre>You need to edit the name of the machine, the locations you want to use for
the volumes, and the UID/GID so you don’t run into permissions issues. If
your user is &lt;code>aaronj&lt;/code> you would do &lt;code>cat /etc/passwd | grep "aaronj"&lt;/code> and
use the UID/GID displaye so you don’t run into permissions issues. If your
user is &lt;code>aaronj&lt;/code> you would do &lt;code>cat /etc/passwd | grep "aaronj"&lt;/code> and use the
UID/GID displayed.&lt;/li>
&lt;li>Register the Docker Account
&lt;pre tabindex="0">&lt;code>$ docker logs RENAMETHIS
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>Look for a line that says something like -
&lt;pre tabindex="0">&lt;code>https://www.dropbox.com/cli_link_nonce?nonce=612531228134bf411986991sdd4d69438
&lt;/code>&lt;/pre>&lt;/li>
&lt;/ol>
&lt;p>Click it and login to register your Dropbox account with that container.
7. Restart the docker machine
&lt;code>$ docker restart RENAMETHIS&lt;/code>
8. Wait for the box to sync.
9. Fix the file permissions.
&lt;code>$ sudo chmod 755 /home/aaronj/Dropbox -R $ sudo chmod g+s /home/aaronj/Dropbox -R $ sudo chown aaronj:aaronj /home/aaronj/Dropbox -R&lt;/code>&lt;/p>
&lt;p>This resolved my issue and with the laptop being a single user system, I am
unconcerned about the permissiveness of the settings because my system is a
single user box with disk encryption. You may want to write a cron to restart
the box every 10-15 minutes as well. The Dropbox daemon seems to have some
issues within the container and it helps to just restart the container.&lt;/p>
&lt;h3 id="troubleshooting">Troubleshooting&lt;/h3>
&lt;ol>
&lt;li>How do I restart my dropbox machine?&lt;/li>
&lt;/ol>
&lt;pre tabindex="0">&lt;code>$ docker container ls
&lt;/code>&lt;/pre>&lt;p>You will want to find the name of the container you need.
2. Then restart the machine.&lt;/p>
&lt;pre tabindex="0">&lt;code>$ docker restart NAMEOFTHEMACHINE
&lt;/code>&lt;/pre>&lt;p>This usually solves the issue. You can also create a cronjob that restarts
regularly to solve any issues off the bat.&lt;/p>
&lt;pre tabindex="0">&lt;code>$ sudo crontab -s
# Edit the crontab to look like this -
# This restarts the container every 10 minutes. Edit this as you see fit.
*/10 * * * * /usr/bin/docker restart RENAMETHIS
&lt;/code>&lt;/pre></description><pubDate>Fri, 19 Apr 2019 15:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/how-to/2019/04/19/docker-and-dropbox/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/how-to/2019/04/19/docker-and-dropbox/</guid><category>how-to</category></item><item><title>Introduction To Mesh Networks</title><description>&lt;!--toc-->
&lt;h2 id="performance-objective">Performance Objective&lt;/h2>
&lt;p>At the conclusion of the course the student will be able to:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Identify what a mesh network is.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify how a mesh network can be employed during an emergency.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify what the PirateBox project is.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Describe one feature that the PirateBox provides.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>A wireless mesh network or (WMN) is a method of creating a network for
communication that is composed of radio nodes that act in an ad hoc manner. The
average WMN will consit of clients, routers, and gateways that allow the
devices connected to the network to communicate with each other. This is
usually designed to work without any kind of centralized infrastructure that
would prevent communication if any one node were to disappear. However, on
smaller networks it is possible that the inoperability of a single device could
cease communications for all members involved. This is likely when deploying a
PirateBox for communication. If you have a single PirateBox and that PirateBox
fails, you will quickly find yourself without a means to communicate.&lt;/p>
&lt;p>The normal internet functions by providing a centralized infrastructure that is
designed to ferry data and information around the globe at high speeds. It is
also useful for allowing people to monitor and spy on every individual using
that infrastructure. This spying can take the form of capturing of packets and
reading the exact information being sent or it can include more esoteric spying
such as the passing of digital fingerprints and measuring traffic to make a
best guess as to the content of the traffic itself.&lt;/p>
&lt;p>PirateBox can be used to spy on traffic but the spirit of the device and the
intention in which it is deployed reduces that possibility. A PirateBox creates
a very small and local network that can be accessed by present parties to share
information and foster digital communication. Similar to the bulletin board
systems of days gone past, the PirateBox is tool that can enhance local
communication and to foster discussion within small communities.&lt;/p>
&lt;h2 id="piratebox-goals">PirateBox Goals&lt;/h2>
&lt;p>Reproduced without permission, the below list contains the stated goals of the
&lt;a href="https://piratebox.cc/goals" title="Goals of the PirateBox Project">PirateBox project&lt;/a>.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>PirateBox provides easy file sharing and messaging over a local area
network.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>PirateBox is designed to educate the public and make them aware about
online censorship, surveillance, and freedom of speech.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>PirateBox truly respects privacy and thus does not collect any access or
connection logs from its users.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>PirateBox has an educational purpose and aims to teach about computer
programming and computer networks.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>PirateBox network (AP) should be open, and use open networking standards
to allow communication with other users.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="file-sharing-and-messaging">File Sharing And Messaging&lt;/h3>
&lt;p>File sharing and messaging are extremely important to anyone who has any amount
of experience with the internet. The ability to relay data and information with
rapidity is vital when dealing with emergencies or even with something as
simple as requesting homework help. The internet itself lives on the vital life
force of files and text that is pumped between device on the network.&lt;/p>
&lt;p>PirateBox fosters file sharing and messaging through the inclusion of a simple
browser based application that exposes file sharing, chat, and an image board
to users who connect to the PirateBox network. This behavior is the core of the
PirateBox user interface and is vital for encouraging the use of the device.&lt;/p>
&lt;h3 id="education">Education&lt;/h3>
&lt;p>PirateBox has a stated goal of educating the public on censorship,
surveillance, and freedom of speech. Education of the public is vitally
important. PirateBox is an excellent conversation piece and demonstration of
how a free and open internet can function and is an excellent tool for
generating discussion on topics that the public may have difficulty even asking.&lt;/p>
&lt;p>PirateBox is also beneficial in that it encourages tinkering and exploration.
Users who deploy a PirateBox may look for ways to improve the project or to
find alternatives that better fit their use case scenario. Can I improve
connectivity by adding new antennas? Deploying more devices? Adding a method to
support different types of encryption for different layers of use? All of these
questions could come up and users might look for answers.&lt;/p>
&lt;h3 id="privacy">Privacy&lt;/h3>
&lt;p>Internet surveillance is a topic that raises serious concern for both law
enforcement as well as citizenry. The public perception of law enforcement is
that they should be able to solve crimes, stop crimes, resolve issues after
crimes have occurred, and do all of this without ever making a mistake or
causing an issue. They must also do all of this without ever glancing at
anything that others have done or posted online and must respect the privacy of
all peoples but must also stop terrorists from conducting attacks and organizing
online. Internet based surveillance is not going away and will continue to grow
thanks to the number of always connected online enabled devices that exist in
homes and on persons nearly everywhere.&lt;/p>
&lt;p>Some individuals seem to believe that they have a right to privacy when they
share their information because there is a continued notion that companies like
Facebook, Twitter, or Reddit have your best interests. This is false. These
companies use you as a product that they distill, condense, package, and sell
for a profit while expecting you to constantly produce content for them to data
mine. Every thing you upload to the internet through these companies should be
considered compromised by every government, institution, group, and person on
this planet.&lt;/p>
&lt;p>PirateBox removes you from the digital data mining circle and encourages you to
develop your own methods of communication. You can operate independently of
these companies and are encouraged to do so. If you wish to use a device in a
manner in which only people you trust are allowed to communicate with you, you
can.&lt;/p>
&lt;h3 id="open-standards">Open Standards&lt;/h3>
&lt;p>Open Source is not Free Software. Richard Stallman states that open source
software is released as a practical advantage that does not campaign for
principles. Free software respects a users ability to run it, study it, change
it, and to redistribute copies with or without changes. Open Standards are the
policies and technology that exist in a non-proprietary manner while allowing
any other device to be able to communicate if they too share in those open
standards.&lt;/p>
&lt;p>So does PirateBox profess to be free software friendly? No. It is an open
source project that exists to use open standards. This means that devices that
include proprietary drivers could potentially function. Is this good or bad?
Neither. It is an ideology and a design choice based on practicality. PirateBox
does not appear to be approved as Free Software Foundation friendly.&lt;/p>
&lt;p>You can search for yourself at the &lt;a href="https://directory.fsf.org/wiki/Main_Page" title="The FSF Directory">FSF Directory&lt;/a>.&lt;/p>
&lt;h2 id="development">Development&lt;/h2>
&lt;p>&lt;a href="https://piratebox.cc/development:git_repositories" title="PirateBox Dev">Development&lt;/a> of the PirateBox is done using Github. The PirateBox
teams keeps a large number of repositories available for your perusal and their
website has excellent documentation on how to locate their projects. I
recommend reviewing their development repositories to build your knowledge of
how the device works, how to improve on it, and how to deploy your changes.&lt;/p>
&lt;h2 id="deployment">Deployment&lt;/h2>
&lt;p>Deployment of the PirateBox provides infinite possibilities. You can pretend to
be a spy, setup a mesh LAN for your neighborhood, or provide an intranet for
use during an emergency. The PirateBox is an awesome tool.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Dead Drops&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Emergency Operations&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Meetups&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="dead-drops">Dead Drops&lt;/h3>
&lt;p>The PirateBox allows for anonymous communication and file transfers between
multiple parties. You can also use the device for chat or as a forum. This
behavior is independent of the internet and does not require anything beyond
normal WIFI networking tools to function. An individual could setup a PirateBox
at a location, leave it connected to a battery or other form of power, and
allow individuals passing by to communicate with the device and leave messages
or other data at their leisure that could be later retrieved.&lt;/p>
&lt;h3 id="emergency-operations">Emergency Operations&lt;/h3>
&lt;p>The very nature of an emergency invariably means that the normal situation is
no more and we may require tools like the PirateBox to communicate in a grid
down or grid damaged event. Shelter standup could be conducted when there is no
access to the internet and a tool like the PirateBox could be deployed to allow
communication locally. Minor changes to the PirateBox could be made to provide
an announcements tool allowing users to connect and view information being
posted by emergency management personnel. This could include scheduling,
orders, or lists of casualties updated in real time. The PirateBox can be
&lt;a href="https://archive.fo/8cUh1" title="Setting up a hard core PirateBox">upgraded&lt;/a> to provide an amazing connection capability.&lt;/p>
&lt;h3 id="meetups">Meetups&lt;/h3>
&lt;p>The PirateBox could also be a fun tool to stand up during meetings or
conventions. You can deploy the device and see who finds it and what they do
with it. The very nature of the PirateBox will encourage interaction and
sharing. Will someone attempt to upload malware? Photos of their pets? Or will
they use it to spread discord or chaos? No way to know until you stand one up
and wait and see what happens.&lt;/p>
&lt;h2 id="answers">Answers&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>A mesh network is a method by which infrastructure is deployed to allow
bridges, switches, and other devices to communicate directly and
non-hierarchically as possible with each other.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>A mesh network can be deployed during an emergency to allow computers and
other devices to communicate with each other over a wireless connection when
the grid is damaged or otherwise unavailable.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The PirateBox is an anonymous offline mobile file-sharing and
communications system that can be deployed using off-the-shelf hardware and
free software.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The PirateBox provides an image board as well as file sharing.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>A mesh network is a vital tool for off grid communication and provides a
promising base for developing a local method of communication that is divorced
from standard infrastructure. Mesh networking is a defense against the control
exerted by centralized resources and their decision on what you may or may not
do with the internet.&lt;/p>
&lt;p>Projects like the PirateBox can be privacy respecting as is claimed in the
goals of the project itself. These projects are often intended to help
individuals who are interested in removing themselves from the Facebook,
Google, and Ad powered ecosystem that most people are beholden to.&lt;/p>
&lt;p>You as a user have an opportunity to contribute to a free internet by adding
mesh networking to your equipment or gear bag. You can use battery powered
Raspberry PI based devices as well as other alternatives to create and
distribute a powerful network that can host any number of files. Contribute to
a free internet by building a free internet.&lt;/p>
&lt;h2 id="final-recommendations">Final Recommendations&lt;/h2>
&lt;ol>
&lt;li>Choose *nix.&lt;/li>
&lt;li>Build or join a mesh network.&lt;/li>
&lt;li>Network and build relationships in real life locally.&lt;/li>
&lt;li>Develop your equipment and gear.&lt;/li>
&lt;li>Choose freedom.&lt;/li>
&lt;/ol></description><pubDate>Sun, 14 Apr 2019 04:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/presentations/2019/04/14/mesh-networks/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/presentations/2019/04/14/mesh-networks/</guid><category>presentations</category></item><item><title>Security Discussion - Church - March</title><description>&lt;!--toc-->
&lt;h1 id="topics">Topics&lt;/h1>
&lt;ol>
&lt;li>
&lt;p>Violence In Houses Of Worship&lt;/p>
&lt;/li>
&lt;li>
&lt;p>First Aid Familiarity&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Getting Organized - A Proposal&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>‘The new normal’ is an idea proposed by author and former CIA employee Steve
Tarani that violence and community fracture is inevitable as many different
groups and ideologies continue to clash. These clashes will spawn violence that
many individuals are not mentally prepared for. We must not allow normalcy
bias to rob us of our ability to react to these situations but instead must
embrace this new normal and prepare ourselves physically and mentally to react
when presented with danger.&lt;/p>
&lt;p>We need to understand that moving forward, if you are responding to ‘Bang’, you
have already failed. If you have to go to guns, you have failed. If you are not
prepared to avoid the threat instead of confronting it, you have failed.&lt;/p>
&lt;h2 id="christchurch-shooting">Christchurch Shooting&lt;/h2>
&lt;p>On March 15, 2019 a 28 year old man named Brenton Tarrant used Facebook to live
stream himself conducting a shooting at the Masjid Al Noor mosque in
Christchurch New Zealand at 1345. He used multiple weapons including rifles as
well as shotguns to conduct the shooting. His victims included men, women, and
children. The estimated death toll was 49 with more than 20 individuals
wounded. Many of his victims required multiple surgeries to save their lives.&lt;/p>
&lt;p>Tarrant used Facebook to live stream his attack, posted numerous warnings
online, and also posted on a popular image board with information on his
upcoming attack and an invitation for viewers to view the carnage. He also
informed individuals that his intention was to live but he was expecting law
enforcement response to be deadly.&lt;/p>
&lt;p>&lt;img src="https://retro64xyz.gitlab.io/../assets/images/inserts/03232019-church/tarrant_spray.jpg" alt="Tarrant Wall Art" title="Tarrant Wall Art">&lt;/p>
&lt;p>Tarrant has been celebrated both online as well as off line. His actions are
being called an inspiration for numerous people who feel that violence is the
only answer in response to what they believe to be increasing encroachment on
their way of life. Calls for further violence have been posted online with many
referring to Tarrant as a ‘Saint’.&lt;/p>
&lt;p>&lt;img src="https://retro64xyz.gitlab.io/../assets/images/inserts/03232019-church/rifle_tarrant.jpg" alt="Tarrant Weapon" title="Tarrant Weapon Art">&lt;/p>
&lt;p>&lt;img src="https://retro64xyz.gitlab.io/../assets/images/inserts/03232019-church/magazines_tarrant.jpg" alt="Tarrant Magazine" title="Tarrant Magazine Art">&lt;/p>
&lt;p>Tarrant decorated his weapons with eulogies and slogans. He posted pictures of
the weapons online and framed the weapons in his videos so that his messages
could be read while he conducted his violent attacks.&lt;/p>
&lt;p>&lt;img src="https://retro64xyz.gitlab.io/../assets/images/inserts/03232019-church/isis_weapon.jpg" alt="isisweapon" title="Isis Weapon Threat">&lt;/p>
&lt;p>ISIS posted a photo of an AK-47 variant in a tweet with promises of
retaliation. The weapon was painted in a manner similar to how Tarrant painted
his weapons. The messages and memorials for the victims of Islamic attacks were
added to Tarrants weapon using a silver or white pen or marker. This was
imitated by the ISIS fighter with his threat.&lt;/p>
&lt;h2 id="threats-against-the-latter-day-saint-community">Threats Against The Latter Day Saint Community&lt;/h2>
&lt;p>&lt;img src="https://retro64xyz.gitlab.io/../assets/images/inserts/03232019-church/isis_temple_attack.png" alt="isisthreat" title="Isis Temple Threat">&lt;/p>
&lt;p>Sometime around November 2017 members of ISIS began posting threatening
images of bloody knives, Christmas gatherings, and an iconic LDS Temple located
in San Diego with threats of violence. Law enforcement turn out was swift and
overwhelming and as of this posting there has not been an organized attack on
any LDS Temples within the United States in recent history.&lt;/p>
&lt;h2 id="first-aid">First Aid&lt;/h2>
&lt;p>Please consider creating a simple combat life saver kit for yourself and
family. An effective kit would include gloves, tourniquets (CAT for adults and
wrap style for children), and a simple pressure dressing. An effective kit can
be put together for very little money and will fit on a belt using a pouch.&lt;/p>
&lt;h2 id="getting-organized">Getting Organized&lt;/h2>
&lt;p>The Maricopa Sheriffs Office provides a block watch program as well as
encourages the organization of members of the community. I am not asking you to
do any policing and neither is the MCSO. I am asking you to be willing to be
organized and to keep an eye on your homes and neighborhood.&lt;/p>
&lt;pre>&lt;code>One of the best deterrents against crime is positive outdoor activity. When
the community is out and about, you can be the eyes and ears of the
neighborhood, but please leave the policing to our deputies.
Please notify MCSO of any suspicious activity by calling the non-emergency
number, 602-876-1011; in an emergency, call 9-1-1. Not only does the
notification help solve potential crimes and keep the neighborhood safe,
the information assists with intelligence led policing. MCSO has a crime
analyst who uses calls for service to help direct targeted patrols and
identify trends.
&lt;/code>&lt;/pre>
&lt;p>I have requested information on the block watch and volunteer to organize it if
members of our community are willing to participate. You are not being asked to
become agents of enforcement but are being asked to be willing to report crime
and to secure your neighborhood through cooperation with local established law
enforcement channels.&lt;/p>
&lt;h2 id="recommended-reading">Recommended Reading&lt;/h2>
&lt;p>&lt;a href="https://www.amazon.com/Your-most-Powerful-Weapon-Using/dp/B078YQ2D2F" title="Amazon Link">Your Most Powerful Weapon&lt;/a> is a training manual on staying safe
in a world where terrorist attacks, active shootings, and physical violence are
the new normal. How can you keep your family safe without a firearm or knowing
a martial art?&lt;/p>
&lt;p>&lt;a href="https://stevetarani.com/" title="The Author Steve Tarani">Steve Tarani&lt;/a> the author of Your Most Powerful Weapon is a
former CIA full-time employee, protective services subject matter expert and
lead instructor for a 3 million member strong training program for awareness
based education. He has provided training for the US Naval Special Operations
Command, FBI National Citizens Academy Alumni Association, National Association
of School Resource Officers, and ‘others’.&lt;/p>
&lt;p>&lt;a href="https://www.amazon.com/Left-Bang-Marine-Combat-Program/dp/1936891301" title="Amazon Link">Left Of Bang&lt;/a> is a manual for the US Marine Corps Combat Hunter
Program. This book is a detailed guide to learning to understand and trust your
gut when it comes to threats and how to respond to them.&lt;/p>
&lt;p>&lt;a href="http://cp-journal.com/" title="The left of bang journal">Patrick Van Horne and Jason A. Riley&lt;/a> are the authors of Left Of
Bang. They provide training to the US Marine Corp, Law Enforcement, and
civilians on correct threat response.&lt;/p>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>Violence is inevitable. There are an increasing number of people calling for
violence with an expectation that conflict resolution cannot be found within
nonviolent means with regards to current and future political as well as
religious differences. Targets are being chosen and planning is being conducted
right now by both groups as well as individuals from all spectrum of the
community. You cannot allow yourself to become complacent or to be caught
unaware.&lt;/p>
&lt;h2 id="final-recommendations">Final Recommendations&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Prepare yourself mentally for violence and how you will respond.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Actively decide to defend yourself and your family.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Purchase a tourniquet and other first aid supplies. Learn to use it.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Understand the phrase ‘The New Normal’.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Seek out additional instruction.&lt;/p>
&lt;/li>
&lt;/ol></description><pubDate>Fri, 22 Mar 2019 04:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/presentations/2019/03/22/safety-discussion-church/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/presentations/2019/03/22/safety-discussion-church/</guid><category>presentations</category></item><item><title>Book Study - Your Most Powerful Weapon</title><description>&lt;h2 id="a-foreword">A foreword&lt;/h2>
&lt;p>I received a copy of this book from my mentor. He encouraged me to read the
book as part of my leadership training and because he found it to be very
beneficial. I was unsure if this book was going to be of use to me but after
having read it, I was very impressed. It had a lot of good information and the
tone of the book was very familiar to me as I felt that there were many bits of
information that I had previously heard or otherwise been trained on in other
classes.&lt;/p>
&lt;p>The book claims that it will teach you how to: build mental toughness, control
your environment, avoid threats, defeat attackers, and control fear. Does it?&lt;/p>
&lt;h2 id="your-most-powerful-weapon">Your Most Powerful Weapon&lt;/h2>
&lt;p>&lt;strong>How To Use Your Mind To Stay Safe&lt;/strong>&lt;/p>
&lt;h2 id="the-new-normal">The New Normal&lt;/h2>
&lt;p>Tarani touches on normalcy bias, types of terrorism, and the ubiquity of new
forms of attack that can be executed remotely. You must take responsibility for
your future and safety. There are two basic forms of attack, the lone wolf
style and the command or leadership enabled type.&lt;/p>
&lt;h2 id="how-to-control-your-environment">How To Control Your Environment&lt;/h2>
&lt;p>Situational awareness is the concept of knowing what is happening around you.
Many people do not pay attention to their surroundings and are not likely to
initiate action to protect themselves. Tarani references a study in which
images of individuals were shown to criminals and those criminals were polled
on who they felt was a ‘good’ choice of victim. Every criminal made the
unanimous decision that their target should be the person who appeared to be
unaware and not paying attention.&lt;/p>
&lt;h2 id="how-to-control-a-threat">How To Control A Threat&lt;/h2>
&lt;p>How you react to a threat is as important as threat avoidance. When you go to
guns, you have failed. You need to be able to react to situations as they
evolve and understand that the risks that come from dealing with an issue after
it is right of bang. You face injury both physical and liability related as
well as possible death when you have to confront a threat with force. It is
better to avoid the threat in it’s entirety and defend yourself through not
being a target.&lt;/p>
&lt;h2 id="how-to-defeat-an-attack">How To Defeat An Attack&lt;/h2>
&lt;p>The first step in defeating a threat is to be able to recognize it and to
interdict the threat before you must resort to violence or force. Just as when
controlling the threat, you want to be able to reply with the least amount of
force necessary to gain the advantage and to hold it. Development of soft
skills is extremely important because it can provide you the abilities
necessary to defend yourself without having to move to violence.&lt;/p>
&lt;h2 id="how-to-control-fear">How To Control Fear&lt;/h2>
&lt;p>Many people are not inoculated against violence or fear. There is a popular
story about two air craft that collided while on a run way. The majority of
individuals on one plane died in a fire because they refused to get out of
their seats and exit the plane. They sat in stunned silence until overcome by
the smoke. You must not allow fear to rob you of your ability to care for
yourself or your loved ones. As an aside, I was taught that courage is not the
absence of fear but is the application of action when you are afraid.&lt;/p>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>This is a fantastic book and I was extremely happy with the recommendation I
received to read it. A lot of the information consisted of solid advice that I
had previously received when I was working for the Texas State Guard. However,
it had been many years since I had last received this kind of training and the
refreshed was much appreciated. I would recommend that people read this book.
It will make a positive impact in your life whether you are military, police,
or civilian.&lt;/p>
&lt;p>You can purchase the book on &lt;a href="https://www.amazon.com/Your-most-Powerful-Weapon-Using/dp/B078YQ2D2F" title="Amazon Link">Amazon&lt;/a>.&lt;/p></description><pubDate>Sun, 17 Mar 2019 15:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/books/2019/03/17/most-powerful-weapon/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/books/2019/03/17/most-powerful-weapon/</guid><category>books</category></item><item><title>Book Study - El Narco</title><description>&lt;h2 id="a-foreword">A foreword&lt;/h2>
&lt;p>I spent several years working on the border between the United States and
Mexico as a member of the Texas State Guard. I believe that those years helped
forment my opinions on gangs, narcotics, crime, and law enforcement. El Narco
is a fantastic book that documents much of what was happening inside Mexico
during those years. I feel a special connection to this book due to the fact I
can look at some of the stories mentioned and remember them as they occurred
from the perspective of a soldier assigned to Operation Border Star.&lt;/p>
&lt;h2 id="el-narco">El Narco&lt;/h2>
&lt;p>&lt;strong>Inside Mexico’s Criminal Insurgency&lt;/strong>&lt;/p>
&lt;p>El Narco is a book written by &lt;a href="http://www.ioangrillo.com/" title="Ioan Grillo Web Site">Ioan Grillo&lt;/a> on the vast criminal network
from Mexico that controls narcotics, murder, and other crimes south of the
American border. This book paints a picture of not only the faceless criminal
organization but a more human cost paid by the men and women who are touched by
the exploits of El Narco.&lt;/p>
&lt;p>This book is an excellent introduction to the drug war and the toll being paid
by Mexico and it’s people. If you have any curiosity about what is happening to
our neighbor to the south, I recommend taking the time to read this book. It
is full of examples, stories, and information that makes it an invaluable
resource for the terminally curious as well as any one who may be working in
criminal intelligence or enforcement. If you have ever watched the news and
wondered ‘Why?’, this book may be able to help you understand the answer.&lt;/p>
&lt;h3 id="history">History&lt;/h3>
&lt;p>El Narco covers the early origins of the narcotics trade with a strong focus on
the peoples of the Sinaloa area who have supplemented their income for many
years by growing and distributing marijuana as well as opium. The Chinese
brought opium dens to the area and the Sinaloan peoples eventually learned how
to grow, process, and distribute the opium themselves. The Sinaloans then
evicted the Chinese and began their rise to power as an international criminal
super power.&lt;/p>
&lt;p>Mexico has a storied history with mythical criminal figures from Jesus Malverde
to Poncho Villa. This history of violence, smuggling, and living beyond the law
has evolved and launched forward into today. We now have new figures making a
name for themselves and their exploits are just as extreme and bloody as any of
the past, if not more so.&lt;/p>
&lt;h3 id="anatomy">Anatomy&lt;/h3>
&lt;p>The members of the cartel work in semi autonomous units whose operations are
often times as antagonistic to each other as they are to the outsider. El Narco
does a fantastic job of introducing you to these people and their stories.
Killers, hustlers, and their mothers are each interviewed and their mentality
is dissected with an excellent translation of what they think they are doing
and what is really happening.&lt;/p>
&lt;p>The key players in the drug war are not just the colorfully named main
characters presented by the news but the Sicarios, field workers, and grieving
relatives who each contribute to the war at large. El Narco brings faces and
names to the table and you learn about the men and women being left headless in
the streets or who vanish forever without a trace. Humanization of the war is
important if we wish to understand the ramifications of the battles.&lt;/p>
&lt;h3 id="destiny">Destiny&lt;/h3>
&lt;p>El Narco proposes a process of legalization and a reduction in crime through
taxation and normalization. The Mexican people have suffered tremendously under
the rule of their narco overlords and a simmering stew of events is waiting to
produce a major civil war or conflict in their country. Mexico is forced to
live in a reactionary state at all times, their actions guided by the
addictions and wants of foreign nationals whose money and vices drive the
violence and blood shed on a global scale.&lt;/p>
&lt;p>Will we see Mexico deteriorate into a narco state, ruled by the wealthy who
build their fortunes off of the lives of addicts and smugglers? Will the
burgeoning quasi religious movement that is preached by street thugs and ghetto
priests continue to replace organized religion? We are seeing an increase in
faithfuls for a new pantheon. What does worshiping money and death Gods like
Santa Muerte do to a populace who is becoming increasingly numb to violence?&lt;/p>
&lt;h3 id="conclusion">Conclusion&lt;/h3>
&lt;p>This is a fantastic book that describes some of the issues facing Mexico as
well as the global community. Narcotics and the economy surrounding it has
reached every corner of the planet. Money spent in the United States makes a
trip to Mexico where it funds women who travel to Europe to build networks that
lead to overdoses in Australia. This global economy of bloodshed and cash may
never be stopped but learning how it began may help others in better making
decisions that will benefit a larger number of people.&lt;/p>
&lt;p>If you have any desire to understand the drug war, this is mandatory reading.
Find yourself a copy and spend a few days studying the pages of this book. It
provides a lot of information that puts the violence and bloodshed into
perspective. We must better understand the relationship between addict, pusher,
distributor, and the violence that churns in foreign nations because of their
interaction.&lt;/p>
&lt;p>You can purchase the book on &lt;a href="https://www.amazon.com/El-Narco-Mexicos-Criminal-Insurgency/dp/1608194019/ref=sr_1_2?ie=UTF8&amp;qid=1549820859&amp;sr=8-2&amp;keywords=el+narco" title="El Narco Amazon Link">Amazon&lt;/a>.&lt;/p></description><pubDate>Fri, 01 Mar 2019 15:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/books/2019/03/01/el-narco/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/books/2019/03/01/el-narco/</guid><category>books</category></item><item><title>Introduction To Assembly Language</title><description>&lt;!--toc-->
&lt;h2 id="performance-objective">Performance Objective&lt;/h2>
&lt;p>At the conclusion of the course the student will be able to:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Install the tools necessary to compile and run assembly language code.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify the three sections of an assembly program.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify the five logical instructions that assembly recognizes.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify what recursion is.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Understand the basics of memory management.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Assembly or asm is a catch-all term used to describe low-level programming
language with close parity to hardware machine code instructions. Assembly
language will be specific to particular computer architecture and operating
systems. Assembly is generally not portable and does not share the ease in
which high-level programming languages can be ported across architectures
thanks to interpreting and compiling.&lt;/p>
&lt;p>Assembly is made into something that can be executed with a tool known as an
assembler. We will be using &lt;a href="https://nasm.us/" title="The NASM site.">nasm&lt;/a> for the purposes of this
instructional material.&lt;/p>
&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>Assembly language requires an assembler. This is an application that turns your
assembly code into something that can be executed. We will be using nasm
because it is easy to install, readily available, and runs on Linux.&lt;/p>
&lt;p>Check to make sure you don’t have development tools installed with&lt;/p>
&lt;pre tabindex="0">&lt;code>$ whereis nasm
&lt;/code>&lt;/pre>&lt;p>We can also run&lt;/p>
&lt;pre tabindex="0">&lt;code>$ which nasm
&lt;/code>&lt;/pre>&lt;p>If you see &lt;code>nasm:&lt;/code> then you need to install using the command &lt;code>sudo pacman -S nasm&lt;/code> or your equivalent installation command for your distribution.&lt;/p>
&lt;p>Once you have installed nasm we can begin writing and building executables from
assembly.&lt;/p>
&lt;h2 id="basic-syntax">Basic Syntax&lt;/h2>
&lt;p>Assembly programs are generally divided into three sections. These three
sections consist of the data section, the bss section, and the text section.&lt;/p>
&lt;h3 id="data-section">data section&lt;/h3>
&lt;p>The data section will be used to hold your constants and the initialized data
that you have declared. This data will not change at runtime and is useful to
holding things like strings.&lt;/p>
&lt;p>You declare the data section using the following syntax.&lt;/p>
&lt;pre tabindex="0">&lt;code>section .data
msg db 'Hello World!', 0xa ;string
len equ $ - msg ;length of the string
&lt;/code>&lt;/pre>&lt;h3 id="bss-section">bss section&lt;/h3>
&lt;p>The bss section has no content. It is uninitialized data. This contains the
information necessary for the loader to preallocate memory space when starting
a program. At execution this will normally contain all 0s and is devoid of
useful information until data is written to those variables. You can use a
debugger to review the contents of this memory as the system runs the program.&lt;/p>
&lt;p>Think of it like taking cardboard, folding a box, putting a name on the box,
and declaring ’this box holds 4 glass jars’. You are preparing the object to
hold things, but it is empty until something is put in it.&lt;/p>
&lt;h3 id="text-section">text section&lt;/h3>
&lt;p>The text section will house your actual code. This section has a specific
declaration and this informs the kernel where program execution begins. This is
similar to the &lt;code>main()&lt;/code> function found in languages like C or C++.&lt;/p>
&lt;pre tabindex="0">&lt;code>section.text
global _start
_start:
&lt;/code>&lt;/pre>&lt;h3 id="comments">Comments&lt;/h3>
&lt;p>Assembly supports inline and lone comments. A comment supports all printable
characters and also allows for blank lines. We use comments to bring attention
to code segments when the code itself is not self explanatory. There are many
thoughts on how comments should be used. I the author believe that code should
be easy to read and indicative of what it is doing and comments should be used
sparingly. Others believe that comments should be used liberally. You as a
coder should make that decision but writing well formed and self documenting
code should be your priority regardless of the methodology chosen.&lt;/p>
&lt;pre tabindex="0">&lt;code>;
;
; This is an example comment.
;
;
msg db 'Hello World!', 0xa ; This is also an inline comment.
&lt;/code>&lt;/pre>&lt;h3 id="asm-hello-world">asm Hello World&lt;/h3>
&lt;p>&lt;a href="https://archive.fo/b5a6" title="Hello World Intel Syntax">Intel Syntax&lt;/a>&lt;/p>
&lt;pre tabindex="0">&lt;code>section .text
global _start ;must be declared for linker (ld)
_start: ;tell linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Hello, world!',0xa ;our dear string
len equ $ - msg ;length of our dear string
&lt;/code>&lt;/pre>&lt;pre tabindex="0">&lt;code>$ nasm -f elf64 hello.asm
$ ld -m elf_x86_64 -s hello.o -o hello
$ ./hello
&lt;/code>&lt;/pre>&lt;p>&lt;a href="https://archive.fo/vc2ut" title="Hello World AT&amp;T Syntax">AT&amp;T Syntax&lt;/a>&lt;/p>
&lt;pre tabindex="0">&lt;code>.global _start
.text
_start:
# write(1, message, 13)
mov $4, %eax # system call 4 is write
mov $1, %ebx # file handle 1 is stdout
mov $message, %ecx # address of string to output
mov $13, %edx # number of bytes to write
int $0x80 # invoke operating system code
# exit(0)
mov $1, %eax # system call 1 is exit
xor %ebx, %ebx # we want return code 0
int $0x80 # invoke operating system code
message:
.ascii "Hello, World\n"
&lt;/code>&lt;/pre>&lt;pre tabindex="0">&lt;code>$ gcc -c hello.s
$ ld hello.o -o hello
$ ./hello
&lt;/code>&lt;/pre>&lt;ul>
&lt;li>32 bit General Registers: EAX,EBX,ECX,EDX&lt;/li>
&lt;li>int is an interrupt. 0x80 informs the kernel it needs to do the action being
held inside eax. The action is known as a ‘system call’.&lt;/li>
&lt;li>System call 1 forces a program to exit&lt;/li>
&lt;li>System call 4 forces a program to print&lt;/li>
&lt;li>64 bit General Registers: RAX, RDI, RSI, RDX&lt;/li>
&lt;/ul>
&lt;p>Intel Syntax: &lt;code>mov eax, 1&lt;/code> Instruction, Destination, Source&lt;/p>
&lt;p>AT&amp;T Syntax: &lt;code>mov $4, %eax&lt;/code> Instruction, Source, Destination&lt;/p>
&lt;p>Intel syntax uses inference to decided the amount of data which is moved and
the addressing mode comes from the operands themselves. AT&amp;T syntax supports
using suffixes at the end of the instruction set to signify the size of the
data. This is not mandatory. The real explicitness of AT&amp;T syntax comes from
the use of the &lt;code>$&lt;/code> and &lt;code>%&lt;/code> symbols. &lt;code>$&lt;/code> means immediate addressing. Without the
&lt;code>$&lt;/code> it would fetch the value found at memory address 1. The &lt;code>%&lt;/code> means use the
register and makes sure the system not to use the symbol (labeled memory
address).&lt;/p>
&lt;h3 id="suffixes">Suffixes&lt;/h3>
&lt;ul>
&lt;li>l - long 32 bits&lt;/li>
&lt;li>w - word 16 bits&lt;/li>
&lt;li>q - quad-word 64 bits&lt;/li>
&lt;li>b - single byte&lt;/li>
&lt;/ul>
&lt;h2 id="registers">Registers&lt;/h2>
&lt;p>Data must be stored in memory and accessed as necessary by the processor.
Reading data from and storing data inside memory is a slow process relatively
speaking. The process itself requires data to be moved across the bus and into
a memory storage before then traversing the same bus in the opposite direction
when the data is needed again. Moving information between ram and cpu is slow.&lt;/p>
&lt;p>Registers exist to speed up processor operations by making memory storage
allocation available within the cpu itself. Registers store data elements for
processing without ever having to traverse the bus and access memory. This
means we have a limited number of spots where we can store information within
the cpu itself.&lt;/p>
&lt;p>64 bit architecture enjoys the benefits of a large number of registers. However
it should be wise to remember that IA-64 assembly language was deliberately
designed with the intention that compilers will conduct the majority of code
writing and that humans will do little if any interaction in assembly. This is
important to remember. In modern systems, compilers and high level programs can
now do an excellent job in taking advantage of hardware and is easily able to
conduct a large sum of optimization without the user needing to get involved.&lt;/p>
&lt;h2 id="logical-instructions">Logical Instructions&lt;/h2>
&lt;h3 id="and">AND&lt;/h3>
&lt;p>AND is used for supporting logical expressions by performing bitwise AND
operations. This operation will return 1 if the matching bits from both
operands are 1, else it returns 0. Does this sound similar to a &lt;a href="https://en.wikipedia.org/wiki/AND_gate" title="The and gate">logic
gate&lt;/a>? It should as they operate the same.&lt;/p>
&lt;pre tabindex="0">&lt;code>0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1
&lt;/code>&lt;/pre>&lt;h3 id="or">OR&lt;/h3>
&lt;p>&lt;a href="https://en.wikipedia.org/wiki/OR_gate" title="The or gate">OR&lt;/a> is used for setting one or more bits. The bitwise OR operator will return 1
if the matching bits from either or both operands are one. It returns 0 if both
bits are zero.&lt;/p>
&lt;pre tabindex="0">&lt;code>0 OR 0 = 0
1 OR 0 = 1
0 OR 1 = 1
1 OR 1 = 1
&lt;/code>&lt;/pre>&lt;h3 id="xor">XOR&lt;/h3>
&lt;p>&lt;a href="https://en.wikipedia.org/wiki/XOR_gate" title="The xor gate">XOR&lt;/a> is a logic gate that gives a 1 output when the number of true
inputs is odd. This can also be used to clear a register.&lt;/p>
&lt;pre tabindex="0">&lt;code>0 and 0 = 0
0 and 1 = 1
1 and 0 = 1
1 and 1 = 0
&lt;/code>&lt;/pre>&lt;p>Clearing a register would look like &lt;code>XOR ABC, ABC&lt;/code>.&lt;/p>
&lt;h3 id="test">TEST&lt;/h3>
&lt;p>&lt;a href="https://en.wikipedia.org/wiki/TEST_(x86_instruction)" title="The test instruction">TEST&lt;/a> instructions work the same as the AND operation but does not
change anything. This allows you to find out if a number is even or odd without
changing the original number.&lt;/p>
&lt;h3 id="not">NOT&lt;/h3>
&lt;p>&lt;a href="https://en.wikipedia.org/wiki/Inverter_(logic_gate)" title="The not gate (inverter)">NOT&lt;/a> will reverse the bits of an operand.&lt;/p>
&lt;pre tabindex="0">&lt;code>0 NOT = 1
1 NOT = 0
&lt;/code>&lt;/pre>&lt;h2 id="recursion">Recursion&lt;/h2>
&lt;p>Recursion exists in two forms. Direct recursion is the procedure in which a
function calls itself. Indirect recursion is the procedure by which a second
procedure calls the first function. Python performs direct recursion very
elegantly. Consider the following bit of code for finding the factor of a
number.&lt;/p>
&lt;pre tabindex="0">&lt;code>def fact(a):
if a == 1:
return 1
else:
return a * fact(a-1)
&lt;/code>&lt;/pre>&lt;p>If you are not familiar with finding the factorial of a number it works like
this.&lt;/p>
&lt;pre tabindex="0">&lt;code>print(fact(4))
4 * 3 * 2 * 1
&lt;/code>&lt;/pre>&lt;p>Recursion is an elegant and simple method of allowing you to conduct repeated
operations with specifically defined rules.&lt;/p>
&lt;h2 id="memory">Memory&lt;/h2>
&lt;p>Pointers, Virtual Memory, and Physical Addresses are all important concepts to
begin mastering. In assembly language, we allocate space and then fill it with
a string. You can see the comparison between assembly and something like python
very easily in regards to handling a string and printing it.&lt;/p>
&lt;p>Assembly - hello.asm&lt;/p>
&lt;pre tabindex="0">&lt;code>; Define variables in the data section
SECTION .DATA
hello: db 'Hello world!',10
helloLen: equ $-hello
; Code goes in the text section
SECTION .TEXT
GLOBAL _start
_start:
mov eax,4 ; 'write' system call = 4
mov ebx,1 ; file descriptor 1 = STDOUT
mov ecx,hello ; string to write
mov edx,helloLen ; length of string to write
int 80h ; call the kernel
; Terminate program
mov eax,1 ; 'exit' system call
mov ebx,0 ; exit with error code 0
int 80h ; call the kernel
&lt;/code>&lt;/pre>&lt;p>You then must compile.&lt;/p>
&lt;pre tabindex="0">&lt;code>$ nasm -f elf64 hello.asm
$ ld hello.o -o hello
./hello
&lt;/code>&lt;/pre>&lt;p>Python - hello.py&lt;/p>
&lt;pre tabindex="0">&lt;code>hello = 'Hello World!'
print(hello)
&lt;/code>&lt;/pre>&lt;p>Running is trivial.&lt;/p>
&lt;pre tabindex="0">&lt;code>python hello.py
&lt;/code>&lt;/pre>&lt;h2 id="gdb">GDB&lt;/h2>
&lt;p>&lt;a href="https://www.gnu.org/software/gdb/" title="The GDB Site">GDB&lt;/a>, the GNU Project Debugger allows you to find out what is
happening with a program as it executes. GDB is generally used for catching
issues or bugs in software. GDB is capable of doing four main things:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Start a program and specify anything that could change the behavior of that
program.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Make a program stop on demand or conditionally.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Examine what happened to a program when it has stopped.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Change things in the program, this allows experimentation.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>GDB supports a plethora of languages including:&lt;/p>
&lt;ul>
&lt;li>C&lt;/li>
&lt;li>C++&lt;/li>
&lt;li>D&lt;/li>
&lt;li>Fortran&lt;/li>
&lt;li>Go&lt;/li>
&lt;li>Rust&lt;/li>
&lt;li>&lt;a href="https://bugs.python.org/issue8032" title="Issue8032 Add gdb7 hooks to Python">Python&lt;/a>&lt;/li>
&lt;li>and more …&lt;/li>
&lt;/ul>
&lt;p>We can install GDB using &lt;code>sudo pacman -S gdb&lt;/code> or use the appropriate package
manager for your distribution. The AUR for python-dbg must also be installed if
you plan to use gdb in conjunction with python. This will replace your python
with one that includes the debugging hooks. Sometimes this breaks things. Don’t
hesitate to use a virtual environment to help with this.&lt;/p>
&lt;p>Python developers can also use &lt;a href="https://realpython.com/python-debugging-pdb/" title="How to use pdb">pdb&lt;/a>.&lt;/p>
&lt;h2 id="answers">Answers&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>NASM - the Netwide Assembler can be installed in Arch derivatives with &lt;code>sudo pacman -S nasm&lt;/code>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Assembly language consists of the &lt;em>&lt;strong>data&lt;/strong>&lt;/em>, &lt;em>&lt;strong>bss&lt;/strong>&lt;/em>, and &lt;em>&lt;strong>text&lt;/strong>&lt;/em>
section. Assembly also supports comments.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;em>&lt;strong>AND&lt;/strong>&lt;/em>, &lt;em>&lt;strong>OR&lt;/strong>&lt;/em>, &lt;em>&lt;strong>XOR&lt;/strong>&lt;/em>, &lt;em>&lt;strong>TEST&lt;/strong>&lt;/em>, and &lt;em>&lt;strong>NOT&lt;/strong>&lt;/em> are the five
logical instructions that assembly recognizes.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Recursion is the ability for a procedure to call itself. There are two forms
of recursion and they are direct and indirect.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Assembly is very low level. You must allocate and deallocate memory as
appropriate.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>You cannot begin the process of disassembly and review of software if you do
not understand how software functions. You must master the basics of computing
if you plan to move forward. Assembly language is extremely low level and gives
the user an excellent idea of exactly what is occurring within the computer.&lt;/p>
&lt;p>Understanding how assembly language works will give you the knowledge necessary
to begin learning concepts such as coding, reverse engineering, and
malware analysis.&lt;/p>
&lt;p>Assembly programming is not necessary to write code. The reasoning for
understanding assembly is several fold. It forces you to gain a greater
understanding of your hardware, architecture, and can help you navigate what an
application is doing when it appears to be coded right but still misbehaves.
You as developer or researcher would be served well by taking the time to
familiarize your self enough to be able to read the
&lt;a href="https://retro64xyz.gitlab.io/../assets/pdf/intel_processor_man.pdf" title="The Intel Man">Intel Processor Manual&lt;/a>.&lt;/p>
&lt;h2 id="final-recommendations">Final Recommendations&lt;/h2>
&lt;ol>
&lt;li>Use Linux.&lt;/li>
&lt;li>Understand your hardware and software.&lt;/li>
&lt;li>Don’t be afraid to get your hands dirty.&lt;/li>
&lt;li>Experiment.&lt;/li>
&lt;li>Practice.&lt;/li>
&lt;li>Read &lt;a href="https://savannah.nongnu.org/projects/pgubook/" title="Programming from the Ground Up Book">Programming from the Ground Up Book&lt;/a>&lt;/li>
&lt;/ol></description><pubDate>Wed, 20 Feb 2019 04:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/presentations/2019/02/20/assembly-language/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/presentations/2019/02/20/assembly-language/</guid><category>presentations</category></item><item><title>Introduction To Love Scams - Supplemental Discussion</title><description>&lt;!--toc-->
&lt;h2 id="performance-objective">Performance Objective&lt;/h2>
&lt;p>At the conclusion of the course the student will be able to:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Describe what a love scam is.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify a type of person or profile that a love scammer may pose as.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Identify what types of people are scammed.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="love-or-romance-scams">Love or Romance Scams&lt;/h2>
&lt;p>Criminal networks and individuals are working overtime to part love struck
victims from their money. While many individuals are spending the time leading
up to February looking for someone to keep them company during Valentines day,
love scammers are looking for desperate victims who are willing to feed their
bank account.&lt;/p>
&lt;h3 id="methods">Methods&lt;/h3>
&lt;p>A scammer could potentially use any method available to them to bilk a victim
out of their money. It is a good idea to familiarize yourself with the common
types of love scams and their methodology. Understanding what scammers do to
accomplish their mission can help you identify otherwise unknown scams and
better defend yourself. The stakes can be &lt;a href="https://www.palmbeachpost.com/news/love-lake-worth-woman-gave-online-stranger-million-lost-all/vzsj9kbiO9d3g0JKJCal2O/" title="Expensive">high&lt;/a>.&lt;/p>
&lt;h4 id="blackmail">Blackmail&lt;/h4>
&lt;p>Scammers often look for vulnerable or otherwise weak individuals who they
attempt to convince to indulge in their fantasies while recording or otherwise
monitoring them. This is often an invitation by the scammer to get the victim
to perform sexual acts on camera.&lt;/p>
&lt;p>Once a scammer has recorded their victim they will often find their social
media contacts and threaten to send the video to their employers, friends, and
family. The victim usually has to pay a sizable sum to protect their dignity
but the scammer will often still reveal the content or sell it on sexually
explicit sites even after having been paid.&lt;/p>
&lt;h4 id="pro-dater">Pro-Dater&lt;/h4>
&lt;p>The pro-dater preys on wealthy foreigners who are willing to visit their
country. They will meet their victim and then orchestrate the victim spending
large amounts of money. This usually requires the help of people who are on the
take.&lt;/p>
&lt;p>The foreigner will often be taken by an expensive taxi, shuttled to stores,
convinced to spend money, and then they are either sent away or otherwise left
somewhere with encouragement to send more money when ever they can. Sometimes
they are &lt;a href="https://archive.fo/70v51" title="Victim murdered">murdered&lt;/a>.&lt;/p>
&lt;h4 id="419-scams">419 Scams&lt;/h4>
&lt;p>A 419 scam is similar to most Nigerian wealth scams. The victim is told that
vast wealth is available if they are willing to marry someone. The scammer then
convinces the victim to send money and pay massive fees and bills, stringing
them on, with the promise of marrying and bringing along massive amounts of
wealth.&lt;/p>
&lt;p>Claims that victims have been beat, robbed, and even murdered after traveling
to &lt;a href="https://archive.fo/tBGge" title="South Africa Murder">Africa&lt;/a> to meet their scammers have been made.&lt;/p>
&lt;h4 id="military-impersonation">Military Impersonation&lt;/h4>
&lt;p>Many scammers impersonate &lt;a href="https://archive.fo/X2Ska" title="The poster child for military love scams">military members&lt;/a>, preying on their victims by
convincing them that their military service prevents them from visiting. The
relationship will usually progress until the scammer finds an excuse to request
cash. This has lead to victims loosing tens of thousands of dollars as they
believe they are assisting a member of the armed forces whom they ’love'.&lt;/p>
&lt;h3 id="defense">Defense&lt;/h3>
&lt;p>Slow down. Stop. Time is on your side. Your online love you have never met who
is demanding cash right now is pressuring you in the hopes of making you make
mistakes. The scammer will often profess their love and then demand cash to
help themselves, family members, or for some other issue. Don’t rush. A
manufactured emergency is a fast way to get you to take action before you
think.&lt;/p>
&lt;p>Don’t wire money or use gift cards. Untraceable money transfer funds will
vanish and you will not recover your losses.&lt;/p>
&lt;p>Any photo provided to you should be entered into &lt;a href="https://images.google.com/" title="Image Search">google image search&lt;/a> as
a reverse search method.&lt;/p>
&lt;h2 id="resources">Resources&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>The &lt;a href="https://archive.fo/CUGu2" title="FBI scam resources">FBI&lt;/a> provides excellent resources on love scams.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The &lt;a href="https://archive.fo/oKDdj" title="DOD love scam resources">CID&lt;/a> provides excellent resources on love scams.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="answer">Answer&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>A love scam is a scam that relies on convincing a person to part with their
money because of some form of emotional or sexual attachment.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Scammers often pose as members of the military because it provides them an
excuse for being out of the continental United States.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Gullible or otherwise desperate people are preyed upon because of their
strong desire for fulfillment and a willingness to over look issues to
satisfy their own fantasies.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>The British Psychological Society claims that people who are sensitive or
emotionally stunted are more likely to fall for online dating scams. Older
people, less attractive people, and persons who receive less attention are more
likely to be willing to suspend belief when highly attractive persons provide
them attention.&lt;/p>
&lt;p>Be cautious with your social media. People look for people who are older and
present a willing to trust. They specifically look for trust indicators like
strong religious predisposition or posts with positive affirmations. Do not
make yourself an easy mark.&lt;/p>
&lt;p>The internet has made scamming a simple career and taken the necessity to be
charismatic out of the equation. Do not allow yourself to be duped or to over
look red flags because you want to prop up your ego. Men and women can both be
victims of the love or romance scam and the only way to protect yourself is to
use caution and skepticism.&lt;/p></description><pubDate>Wed, 20 Feb 2019 04:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/presentations/2019/02/20/love-scams/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/presentations/2019/02/20/love-scams/</guid><category>presentations</category></item><item><title>Guest Post - The Blockchain Utility</title><description>&lt;h1 id="guest-post-by-privateseabass">Guest Post by PrivateSeaBass&lt;/h1>
&lt;p>This is a guest post by &lt;a href="https://privateseabass.gitlab.io/" title="The Author">PrivateSeaBass&lt;/a>.&lt;/p>
&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>This paper was written, due to the massive popularity of blockchain, and all
that comes with the hype of a new technology. Many people seem to believe it
is a fantastic finding, “A breakthrough of modern technology”, “The future of
Technology”, “Everything should be a blockchain!”. Although, there are many
issues that have come with blockchains that aren’t being considered. The
easiest, clearest reason for the success of blockchain is the incentivisation.
In the cryptocurrency space, more versions of money allow for different types
of transactions, such as payment per second transactions (assuming the chain
the currency is on can handle it). In reality: there &lt;em>may&lt;/em> be some amazing
uses for blockchain that are not done yet, but to ensure people don’t burn
their budgets on a dream that is not actually ideal as a blockchain, this paper
was created.&lt;/p>
&lt;p>In this paper, there is an outline of the following:&lt;/p>
&lt;ul>
&lt;li>Hashes&lt;/li>
&lt;li>Blocks&lt;/li>
&lt;li>Blockchaining&lt;/li>
&lt;li>Decentralization&lt;/li>
&lt;li>How blockchains grow&lt;/li>
&lt;li>How blockchains propagate&lt;/li>
&lt;li>Legal considerations of data&lt;/li>
&lt;li>How one chain may split into two&lt;/li>
&lt;li>Why blockchains are trusted&lt;/li>
&lt;li>More effective solutions to some problems&lt;/li>
&lt;li>Security considerations&lt;/li>
&lt;li>Life expectancy of blockchains&lt;/li>
&lt;/ul>
&lt;p>Note: If a subject is already known, or isn’t of current interest, you may be
able to skip to a different section, but many of these subjects are
interconnected.&lt;/p>
&lt;h2 id="hashes-of-blocks">Hashes of Blocks&lt;/h2>
&lt;p>“Hashes” are an algorithmically calculated way of showing information that will
always be the same and is irreversible. (Until there is enough data for it to
duplicate, check section “Life Expectancy of the Chain”) “Hashing” is the verb
for calculating the hash of something. The “block” of the chain is information.
We hash the data; we make it into a smaller, consistent, irreversible value. As
a result, if verification for the information is needed, one only has to take
the file in question, calculate the hash, and compare the hash to the one
provided by the entity in question. Bitcoin, for example, uses &lt;a href="https://en.bitcoin.it/wiki/Hash" title="Secure Hashing Algorithm - Bitcoin">Secure Hashing
Algorithm 256 (Sha256)&lt;/a>. Take a look under the “hash” section of
the &lt;a href="https://blockchain.mit.edu/hash/" title="The MIT Hash Tool">MIT Hash Tool&lt;/a> (For those of you who care: You need
Blockchain.MIT.edu and anders.com JavaScript enabled).&lt;/p>
&lt;p>Here is an image file’s sha256sum (algorithm) hash:&lt;/p>
&lt;pre tabindex="0">&lt;code>f110cfce59853eec018a2be0f23565d46b67848194e99f91ed701ea9be672420 \*linuxmint-18.3-kde-64bit.iso
&lt;/code>&lt;/pre>&lt;p>(Anyone can calculate the hash value, hashing isn’t hard, and good security
professionals compare them every time they obtain a file from the internet)
So, if you find the image file “linuxmint-18.3-kde-64bit.iso”, obtain a Sha256
hash of it (get a program to calculate it for you), and the value you get is
the same, then everyone can be certain that (given today’s hardware
capabilities) it is VERY likely to be the EXACT SAME file that was used for the
above hash.&lt;/p>
&lt;p>That integrity is the basis of the “block” in blockchain (nonces are talked
about in section “Process: Growth”).&lt;/p>
&lt;p>If the value “ABCD” is hashed, a value is output. If the value is made
lowercase, “abcd”, then the hash value becomes something ENTIRELY different.
The same goes for any data in the blocks; if anything in the block of
information changes, the hash ENTIRELY changes.&lt;/p>
&lt;p>Want to see it yourself? Type some letters in &lt;a href="https://www.xorbin.com/tools/sha256-hash-calculator" title="Xorbin Hash Calculator">This calculator&lt;/a> and
&lt;a href="https://blockchain.mit.edu/hash/" title="The MIT Hash Tool">MIT Hash Tool&lt;/a>. They will be the exact same, if they use the same
algorithm.&lt;/p>
&lt;h4 id="so-what-is-the-chain">So, what is the “Chain”?&lt;/h4>
&lt;p>Blocks are chained together by taking the hash of the previous block and
putting it into the data of the current block, before hashing. This way the
previously calculated block is verifiably the same. If data or the hash of the
previous block is changed, then the current block changes too. One way of
saying this is “breaking the chain”. Want to see how the chain is connecting
blocks? Use this &lt;a href="https://blockchain.mit.edu/blockchain/" title="MIT Blockchain tool">MIT Blockchain Tool&lt;/a>.&lt;/p>
&lt;p>The blockchain’s immutability (&lt;em>non-changeability, unalterability, insert
favorite word for can’t be changed&lt;/em>) has lead name “ledger”; they are similar
to the accounting records in that they are never supposed to changed. Not only
are ledgers supposed to be permanent, but they hold PUBLIC information. ANYONE
can read what data is on the blockchain at ANY time.&lt;/p>
&lt;p>One problem for blockchains is the Right to be Forgotten and the GDPR. The EU
requires personal information to be removable, as people have “The Right to be
Forgotten” and GDPR does not allow personal data to leave the EU without
consent of the individual. Why does this matter? Most of the time the
objective is for blockchain to be a globally used system. Even when not
intended, it often becomes one. Developers would thus need to be careful and
ensure no data that is put on the chain can be considered a breach of privacy,
unless that is what was desired, as that is the point of the blockchain (to
store private information). Once put on the chain, the private information can
NEVER be removed or else you break the chain… rendering the use of a
blockchain and accuracy of data moot.&lt;/p>
&lt;p>Workaround: The data on a blockchain says WHERE the data is, not WHAT the data
is…. If you use the work around, why did you bother using a blockchain? The
blockchain is used to store &lt;em>where&lt;/em> data is. This is adds a hoop to a basic
database server, rendering it less efficient than a simple database (How much
less in section, “Process: Growth”). It removes the purpose of using a
blockchain, entirely, and even makes it more processing work for a computer
making the delivery of data even slower than a simple database!&lt;/p>
&lt;p>Let’s assume the blockchain provided the users an option to transact some
amount of data, or even a file. Bitcoin, for example, allows people from around
the world to put 1 Mb of information into their transactions, without
restriction. People can put pretty much anything in it, as it is without
restriction. Links, portions of photos, other hashes, whatever as long as it
fits into 1 Mb. What do criminals want to put in as their portion of data?
People have posted &lt;a href="http://fortune.com/2018/03/20/bitcoin-price-blockchain-child-porn-ban-crime/" title="Child Porn In Bit Coin">links to child pornography sites
(Article)&lt;/a>.&lt;/p>
&lt;p>Once law enforcement finds it, the sites can be taken down, and thus the link
is unusable to find content. This does not prevent capability and reoccurrence,
though. Some issues criminals have created are irreversible, such as &lt;a href="https://internetofbusiness.com/bitcoin-blockchain-contains-illegal-porn-say-researchers/" title="Child Porn In Bit Coin">images of
child pornography (Article)&lt;/a>.&lt;/p>
&lt;p>Again, links can have the data at the directed site removed, but if it isn’t
directing to the content, then they will be permanent, and distributed to
everyone who uses the blockchain. For anyone thinking of making a blockchain,
this is a possible legal issue.&lt;/p>
&lt;h2 id="decentralization-of-the-system">Decentralization of the System&lt;/h2>
&lt;p>The blockchain has a ledger that is not owned, maintained, nor held by a single
person; rather, it is owned/maintained/held by MANY people. Servers are run on
computers to take, look at, and add/verify data on the blockchain. For many,
the procedure is “Go to this website if you want to see the data.” If you
wanted to do more than simply the website, you could store some of the data
yourself. Possibly helping spread the blockchain faster and further, if you
decide to set up a computer to do so. This type of computer is called a “node”.&lt;/p>
&lt;p>The nodes are the owners and maintainers of a blockchain’s ledger. Nodes are
where information is obtained from and stored. The beauty of blockchain being
that everyone is able to store and spread the blockchain’s information, without
need for a central trusted entity. This capability is called decentralization.&lt;/p>
&lt;p>Short version: Nodes store blockchains data. Nodes can be run by anyone.
Ownership available to anyone is called decentralization.&lt;/p>
&lt;p>This is why many blockchains are generally open-source: “If I can’t tell what I
am running, if I can’t tell it isn’t malware, why should I run this blockchain,
when the standard is that I can see every bit of code to know what I am
processing!?” This aspect has it’s own implications, which are generally
positive to the public and some of the time positive to businesses. If you
would like to know what those are, look for a debate between open source and
closed source, &lt;a href="https://www.techwalla.com/articles/open-vs-closed-source-operating-system" title="Closed Versus Open Source">like this one&lt;/a>.&lt;/p>
&lt;p>(PLEASE look at multiple, most are biased to their side).&lt;/p>
&lt;h2 id="process-growth">Process: Growth&lt;/h2>
&lt;p>A blockchain system is developed, but now it needs computers/processing power
to calculate the hashes of the blockchain.&lt;/p>
&lt;p>This is because the calculations are non-reversible and so complex that only a
computer could do the hashing in a small enough time. If you want to see how to
&lt;a href="https://www.youtube.com/watch?v=y3dqhixzGVo" title="How to calculate a hash video">calculate a hash by hand&lt;/a>, it is unrealistic to think a person
could calculate enough sha256sums for a blockchain; thus, computers do it.
Who’s computers, though? The “Miner’s” computer. They take the most recently
transacted data and the previous block’s hash to create a hash for the next
block. For any given blockchain, calculating the hash can be made more or less
difficult (Described in “Stunting Growth”).&lt;/p>
&lt;p>Problem: The more data there is, the more data that has to be hashed. The more
data that needs hashing, the longer the calculations will take, and the more
processing power is needed to do it. Limited answer: Decrease difficulty of
hashing the blocks. Answer: Limit the amount of transactions that can be done
per block.&lt;/p>
&lt;p>Problem: What if someone finds the hash for the next block, but as it is
getting distributed to the other nodes/users, someone else finds the same data
and starts spreading in an area that hasn’t been told it was found, yet? Who
claims ownership of the block? and if there is a reward system, who claims the
reward? This separation is called a “fork”. Currently used answers:&lt;/p>
&lt;ol>
&lt;li>Whichever fork everyone agrees to use&lt;/li>
&lt;li>Whichever fork is longest&lt;/li>
&lt;li>Whichever fork reaches a certain length beyond the split off first.&lt;/li>
&lt;/ol>
&lt;p>Problem with the answers: Each fork will have it’s own transaction data, based
on which fork people gamble will be the successful one. Where does the
information in the dropped forks go? Answers: It either disappears, as if it
didn’t happen… or A system is somehow applied that the I don’t understand
(thus would be unqualified to explain), which would transition the fork’s data
into the new chain. If this happens, then somehow some miners might have spent
money that they didn’t know they wouldn’t have…. So now what?&lt;/p>
&lt;p>Let’s take this problem into a new idea I once heard of from a presenter at a
blockchain conference: A blockchain for setting up and recording times of
flight departures and arrivals. Single point of trust? No, two flight towers
can be separate entities, and maybe entirely separate airports, eventually.
Transactions: Time stamping when flights have arrived or departed. Miners: Air
port companies, maybe even fliers. In theory, maybe this would work under
perpetual, ideal conditions.&lt;/p>
&lt;p>The problems for this system are as follows:&lt;/p>
&lt;p>Question 1: What happens when connections between the towers is dropped?&lt;/p>
&lt;p>They both keep having more flight arrivals, delays, late departures, so more
transactions and more blocks being built and added. Now, these two towers have
entirely different content on their chains. The above problem means that one
tower at the same airport has accurate data, and the other must be agreed is
false. The discrepancy is that both may have accurate data, but the fact that
they have different data means that one must be complete thrown out. Airports
can’t afford this waste of resources, the missing data wouldn’t have been
stored anywhere, and they are at a loss, or the accurate data is know, added to
the other chain, and the heaving processing for a blockchain would need to
repeat.&lt;/p>
&lt;p>Question 2: What happens if flight information changes?&lt;/p>
&lt;p>Flights can be delayed several times to eventually be canceled, even, but the
blockchain wouldn’t care. You can’t change it. “-Okay, okay, let’s use the
blockchain that stores where the data is stored…!” The problems for that make
blockchains pointless. (Discussed in section: So, What is the Chain?)&lt;/p>
&lt;p>Question 3: Why not just use a different system?&lt;/p>
&lt;p>&lt;a href="https://medium.com/@istanbul_techie/a-look-at-conflict-free-replicated-data-types-crdt-221a5f629e7e" title="Conflict Free Replicating Data Type">CRDT (Conflict-Free Replicating Data Type)&lt;/a> is a system that can resolve
this issue more efficiently without this problem, assuming data is properly
setup. If we change this to patching software or delivery of information, Darcs
is an older algorithm for applying patches out of order.&lt;/p>
&lt;p>In short: What happens to the miners when a chain forks? They either keep
their earned money, because of the winning chain, the above happens because of
a losing chain, OR the chain permanently forks and we have two versions of the
same blockchain.&lt;/p>
&lt;h4 id="security-and-this-permanent-data">Security and This Permanent Data&lt;/h4>
&lt;p>Etherium (cryptocurrency) had data that was “public” in an object oriented
programming sense. This means that anyone could affect it whenever they wanted
to… This was the “who has how much money” part of the code. So to prevent
thievery from anyone Etherium forked to a more secure version. If you wanted
the more secure version of a blockchain, you would have to start/join a new
blockchain, meaning lose all the transactions and rewards that previously
existed. Needless to say, not everyone moved to the new chain. It couldn’t be
transferred unless everyone agreed to stop doing transactions long enough for
it all to be calculated on the new chain. Although… this would take about as
long as the lifespan of the chain. This won’t happen if the chain lived for
months; People need to use it for it to be an adopted blockchain. This is a
larger scale issue to the forking problem.&lt;/p>
&lt;p>Assume there are many transactions in general; for example, many
degrees/certifications being given to people. This would mean that Degrees may
poof out of existence all the sudden, if the granting entity just chose the
wrong fork. Resolution: It can be reassigned to a new chain, “Just add it to
the other!”, one might say. This means that the users of the chain want as big
of blocks as possible, as many transactions as possible.&lt;/p>
&lt;p>Remember remember the earlier problem about miners wanting to process as little
data as possible, so they could make as many blocks as possible? Paradox:
Miners want as few transactions as possible. Users want as many transactions as
possible. The creator will want more blocks from miners, making the chain grow,
making the data permanent. If there are no users on the chain; thus, no data to
hash; then, there is no work for the miners; and the blockchain isn’t being
used anyways.&lt;/p>
&lt;p>One blockchain did this differently. &lt;a href="https://eos.io/" title="Block One">EOS.io&lt;/a> instead of having the
competitive system for miners, they work together to obtain the next block. One
application that used this system was a social media platform. Thus the
insentive to mine is to allow more posts on the chain. The fact that these
systems were working together to find hashes makes it able to scale to greater
transactions speeds (Currently around 50,000 transactions per second).&lt;/p>
&lt;p>Takeaway: What incentive is there for miners to mine (hash) data? How many
transactions do you have time to do? &lt;a href="https://altcointoday.com/bitcoin-ethereum-vs-visa-paypal-transactions-per-second/" title="Comparisons Of Transaction Rates">Comparison of Bitcoin, Etherium, PayPal,
and Visa Transaction rates&lt;/a> Would it be better to make a
system/application that all colleges make their own version of that is a public
database of degrees or certifications? The writers and owners of the databases
would be colleges, or better yet, all the students for a personal database? A
blockchain may not be ideal, but it can still be decentralized. If not
currency, how can you make people work together if it needs to scale more?&lt;/p>
&lt;h4 id="stunting-growth">Stunting growth&lt;/h4>
&lt;p>For those of you who would like to know the more complex details, here is how
random numbers matter and how difficulty for mining is determined. If not, you
can skip this section. Use this to visualize and do it, if desired. &lt;a href="https://blockchain.mit.edu/blockchain/" title="MIT Blockchain tool">MIT block
tool&lt;/a>&lt;/p>
&lt;p>Blocks are made harder to mine by requiring some value (usually 0) at the start
of a hash to be considered a valid block. To produce this specific hash value,
a hash needs a “nonce”, or random data used to change the hash value. The nonce
is a randomly generated value; where it comes from can be up to the user. It
also shouldn’t matter too much, as long as these values don’t repeat. People
are also unlikely to share this information. Miners are working against each
other for the reward of mining blocks after all. People use nonces, rather
than going from the ground up, because randomly choosing numbers seems to
result in an accurate hash faster than calculating the value all the way up. If
someone is starting from one and climbing from there, people would likely be
repeating the actions of another person, meaning being behind that person in
chances for success. One idea to keep in mind is that modern blockchains
increase difficulty of mining as time progresses. This results in even slower
growth as time goes on, and can compensate for the advancement of technology.&lt;/p>
&lt;p>&lt;a href="https://www.blockchain.com/charts/difficulty?scale=1&amp;timespan=all" title="How hard is the hash?">Current difficulty for Bitcoin&lt;/a>&lt;/p>
&lt;h2 id="the-trusted-trust-less-system">The Trusted, Trust-less System&lt;/h2>
&lt;p>Blockchains are full of permanent data that people trust is accurate.
Blockchains prevent anyone from changing data into false information.
Blockchains are only worth doing, if one has not single point of trust. If
only one person can make transactions/write on the chain, who can prove that
person won’t lie in the transaction? This person is in full control of the
data, even though everyone has it, one person has all the power. Thus in a
blockchain where only one person can be trusted to post accurate data, to make
accurate software/hardware, or to even hashing accurate information, it can’t
be trusted by anyone but the person in control. If there is one point of trust,
the it may as well have been created in a server or database that is simply
owned by the trusted entity. The system would be faster, the person would have
necessary control of the data, and data one can still prevent the removal or
changing of data. The same argument goes toward businesses.&lt;/p>
&lt;p>So to ensure the use-case is viable, to prove that it has a purpose being a
blockchain rather than a decentralized system, verify that no where along the
path of creation is a “single point of trust”. Blockchains have no data or
permission that only one entity is allowed to use.&lt;/p>
&lt;p>That is one point that people may call “the beauty of blockchain”. I agree that
“Blockchain is an adversarial system. It is a system that people who would take
every chance to ruin and demoralize each other will come to trust and agree on
this system. People from Israel, Iran, America, and North Korea will come to
agreement every second about data on a blockchain. They might fight every day,
but in the blockchain they agree on and trust in the truth of the data every
second of its existence.”&lt;/p>
&lt;p>That is what makes blockchain beautiful, but it also makes it very difficult
(if not impossible) to justify using over other systems (if not impossible to
use, due to a lack of compatible needs).&lt;/p>
&lt;p>Looking at the information that would get stored in a blockchain is also an
interesting situation. People who desire privacy may get it. There are possible
methods to obtain complete privacy, but these are not usually implemented in
currently used cryptocurrencies. Using the data on the blockchain and other
outside information about your account are usually enough to trace the currency
back to where it was from. Law enforcement need this to ensure any funny
business is legal. People who value privacy hate it because it removes
anonymity. Looking at the previous example, a system for degrees are intended
to have public presence and public data. Not everyone will want it all to be
public data look back at the GDPR regulations and keep in mind that some people
don’t put their degrees on resumes due to over-qualification but really lack
needed knowledge. Some people may not want their place of education posted, as
it is a place to gather more information on people. If it is high school
degrees, too, then users need to remember not to have that as their security
questions. More examples would be found with time.&lt;/p>
&lt;p>In short, people may not want their data on the chain, but when you put it on,
now what? Redo the chain and spend a lot of time and money on processing? This
issue was not made to get easier over time, either. Looking the &lt;a href="https://nakamotoinstitute.org/bitcoin/" title="Bitcoin white paper">white papers
from Satoshi Nakamoto&lt;/a>, who is sometimes looked at as the
creator of blockchain, hardware would get more efficient, but the chain would
also increment its difficulty to accommodate for that issue. (Also mentioned in
section “Stunting Growth”) Maybe it can be changed to be more efficient, but
cryptography gets stronger, thus harder to encrypt/decrypt over time. &lt;a href="https://www.blockchain.com/charts/difficulty?scale=1&amp;timespan=all" title="How hard is the hash?">Current
difficulty for Bitcoin&lt;/a> Speed of processing a blockchain
will not likely change, and if it does then it is likely be vulnerable to
collision attacks (talked about in final section, “Life Expectancy of the
Chain”).&lt;/p>
&lt;h2 id="life-expectancy-of-the-chain">Life Expectancy of the Chain&lt;/h2>
&lt;p>Blockchains have an inevitable and expected end of life. These systems work
because hashes are still difficult enough to forge. These hashes work well, but
they have a limit in size. Once the algorithm becomes obsolete, they gain a
vulnerability due to general hardware quality being good enough to easily
forge.&lt;/p>
&lt;p>When calculating hashes, one CAN obtain the same value more than once. If
someone finds a second value with the same hash as is on the chain then the
data in the chain can be changed to the data within that hash. These
vulnerabilities are called collisions, as two calculations have collided into
the same hash value. The purpose of the ledger’s immutability becomes void if
this is found. Once again, someone can change data, and who can trust the
system’s data accuracy now? The likeliness of this happening is entirely
dependent on the complexity and amount of bits used in the hashing algorithm.
If it is simple and uses a smaller sized hash (fewer bytes), calculations will
result in the same hash (thus collide) more often. Thus the largest hash
possible is desired to ensure the longest life of the chain. This increases
hash calculation time for miners. This means fewer transactions can be done per
block mined. And now we have returned to the paradox of transaction sizes.&lt;/p>
&lt;p>This all isn’t to say that blockchains have no uses. Timestamp events are one
implementation that may even be ideal if implemented with a blockchain. The
problem is that timestamp may not be interesting to enough people to make
successful, and even if it is successfully made, it will still fail if it isn’t
set up properly.&lt;/p>
&lt;p>Many people and businesses use blockchains, today. Hopefully, a full scope of
what is necessary or better systems will be realized as a result writing this.
Today, blockchain is a buzz-word, but hopefully people will see that most of
the time, there are ALMOST always better solutions to their problems than
blockchains.&lt;/p>
&lt;p>More information that may have not been mentioned:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://www.multichain.com/blog/2017/05/blockchain-immutability-myth/">Methods of changing blockchains&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://www.coindesk.com/three-smart-contract-misconceptions">Smart Contracts&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://blog.apnic.net/2017/12/14/dont-get-caught-blockchain-hype/">Deciding on if you should you a blockchain conditions&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://glennchan.wordpress.com/2018/02/20/blockchain-is-a-useless-technology/">Problems of Bitcoin’s system&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://hackernoon.com/ten-years-in-nobody-has-come-up-with-a-use-case-for-blockchain-ee98c180100?gi=c100ae3689ec">Idea proposals for blockchains and reasons against&lt;/a>&lt;/li>
&lt;/ul></description><pubDate>Wed, 16 Jan 2019 15:52:43 -0700</pubDate><link>https://retro64xyz.gitlab.io/essay/2019/01/16/the-blockchain-utility/</link><guid isPermaLink="true">https://retro64xyz.gitlab.io/essay/2019/01/16/the-blockchain-utility/</guid><category>essay</category></item></channel></rss>