ExperimentalGuy

joined 1 year ago
 

I've been trying to learn the fuzzing library LibAFL for a while now, but I never seem to be able to fully grasp the essential parts. I've read tutorials, followed along tutorials, read the whole LibAFL book (that's still under construction), and have read a few of the examples in the repo. You could say I'm still in tutorial hell, honestly.

I'm trying to write a simple fuzzer for a malware code sample (MooBot) and I've been trying to figure out two things: how to find the input that has the maximum run time for a function, and how to not run malware directly on my computer. One of them should be more important than the other, but given my lack of expertise in LibAFL right now, I'm focused on the former. For my example, I noticed that there's a custom trim function in MooBot that helps sanitize input:

void trim(char *str)
{
        int i, begin = 0, end = strlen(str) - 1;

    while (isspace(str[begin]))
        begin++;

    while ((end >= begin) && isspace(str[end]))
        end--;

    for (i = begin; i <= end; i++)
        str[i - begin] = str[i];

    str[i - begin] = '\0';
}

This is what I test in my harness. I know I could probably logic my way into finding the input that has the max run time, but I'm using this as an exercise for LibAFL and using the rust FFI. The problem is how to deal with feedbacks and observers. I currently have this with no observers:

let mut feedback = CrashFeedback::new();
let mut objective = CrashFeedback::new();

Which simply reports an input if it crashes the program. It works for inital fuzzing, but now that I'm trying to find an input that maximizes run time this won't work. I tried to figure if there was a maximization feedback that would work with the time observer, but the only feedback that maximizes anything is the MaxMapFeedback which doesn't seem compatible with the time observer.

What I'm envisioning is something like this:

let mut observer = TimeObserver::new();
let mut feedback = MaximizeFeedback::new(&observer);

I think the solution has something to do with MapFeedbacks, but I'm not exactly sure how they work.

[–] ExperimentalGuy 2 points 1 week ago

I've been thinking about trying to make plugins for awhile (which is the most relevant thing I can say). This looks really cool and seems like it'd be a nice start into audio programming.

[–] ExperimentalGuy 3 points 3 weeks ago

I still don't get it

[–] ExperimentalGuy 11 points 1 month ago (2 children)

Dumb question but is that a real command line tool

[–] ExperimentalGuy 2 points 1 month ago (1 children)
[–] ExperimentalGuy 3 points 1 month ago (1 children)
[–] ExperimentalGuy 1 points 1 month ago

The internet archive has a lot of torrents that need seeding if you're up for something like that? I think they're still down, but once they're back up, it's pretty easy to help out with that.

[–] ExperimentalGuy 6 points 2 months ago

Every high school yearbook

[–] ExperimentalGuy 1 points 2 months ago (1 children)

Why not just compress a directory then encrypt that?

[–] ExperimentalGuy 2 points 2 months ago

This is beautiful, but what would be even better is to have the program open a reverse shell so you can log into the computer to install pandas manually.

[–] ExperimentalGuy 20 points 2 months ago (29 children)

I think one thing to mention is that Rust is highly specific in what it does. In most of the examples you mentioned, string types, tokio::main, you can essentially just say that rust is more explicit. When initializing an integer variable in C using int, it's not specified what use the integer is or whether it's signed or not. i32, uint16_t you can see how it's specified. Using tokio::main before your main function just specifies that you're using the tokio asynchronous executor for your async code. In the case of string types, they all have different implementations which just help with being specific.

The reason I like Rust is because I know what's happening when I read it. Did I have to read the whole async book to understand how the tokio::main stuff works? Yes. But now I understand exactly how it works. The problem I have with using Javascript is that it doesn't have that high amount of explicitness(is that a word?). At the end of the day, if you're using it for a personal project or you're arguing for language supremacy, it really just comes down to personal preference.

[–] ExperimentalGuy 2 points 2 months ago

May he rest in peace

23
Making malware (self.programming)
submitted 2 months ago by ExperimentalGuy to c/programming
 

This is going to sound fishy.

Recently getting into cybersecurity things and have been pretty interested in looking at malware and maybe making some myself to get the hang of it. Do you guys know any good repositories with malware to learn from? For example, if I wanted to make a credential stealing program, there's a lot of different programs that may have credentials that are valuable. Or, maybe writing a keylogger? I took a look at a rust crate that can record keystrokes but has kind of a weird (or at least not as easy) type system because of different OS implementations, but how do different types of malware consolidate those differences?

I guess the broader question I'm getting at specifically is looking at how already made programs get around different technical obstacles like detailed above.

Thanks

28
Good Computer Handbooks (self.programming)
submitted 2 months ago by ExperimentalGuy to c/programming
 

I went to my local library today and noticed there's a lot of networking, cybersecurity, tcp/ip books from the early 2000s. Now, I want more modern versions of these types of handbooks. Does anyone know any good modern handbooks that deal with networking or network security standards?

Thanks :)

 

I wanted to get others' takes but it seems like the only real way to get a non-spying car is to get an older car without any sort of telemetrics. I saw a video about different car companies' security policies, well specifically the new Mental Outlaw video, and it just blew me away how even our cars aren't safe. Anyone got tips for how to anonymize their car?

67
submitted 6 months ago by ExperimentalGuy to c/linux
 

I've seen a lot of different enterprise and personal use distros for servers, but what do you guys use?

I'm planning on using Debian but was wondering if there are any other good free options to consider.

 

I've been looking around to find a good, privacy respecting way to sync my messages between phones. I decided I'm going to use SyncThing so I don't have to mess around with a server. The only problem with this is that I haven't been able to find any apps that work on modern Android that routinely backup and import messages from a file/folder into the messages database. Does anyone know any app that might do this?

 

I recently purchased a domain for myself as a why-the-fuck-not purchase and I need some ideas for what to put on there. Some ideas so far include: Small Blog Personal S/FTP server to sync back to Minecraft server

Does anyone have other ideas? Thanks :)

3
[OC] Kindle (self.poetry)
 

Smooth breath

I beset from your bated breath

Unless the stress that's given to me clear

Resides unfound and unclear

The key to my restitution lies in recognition

Opaque and sticky, defiance. Then remission

Upset and overreliant on bad positions

The lever's balance is set on a dud pivot

Problems unseen stay while shit thickens

While the root is left untapped

The branch kindles

5
submitted 9 months ago* (last edited 9 months ago) by ExperimentalGuy to c/[email protected]
 

When the words barely whisper

And the songs known forgotten

When the seldom well wished

And a stone throw's the bottom

When the once well trodden

Is soiled down and sodden

Accept the well wishes of ones who once wished

And song without a singer like food without dish

And sing those well wishes to your brother on a lake

Stoning throws, hitting water, showing off for the sake

 

I'm trying to find a good fuzzing tool for testing my web applications and was wondering what people would recommend. I'm trying to find one that is open source, free, and doesn't use proprietary stuff. It seems like Google's OSSFuzz is the closest option to what I'm looking for, but it uses Google cloud :/

 

I've been trying to find something that allows me to see performance visualizations in my rust programs, but I haven't found any so far. I'm looking for something that's like SnakeViz in Python, but for Rust. If there's a better way to get about doing this, I'm all ears.

view more: next ›