All right.
Welcome back to Base Exploit development.
And before we generate our payload, I was a bit too overexcited.
We need to identify our bad characters or else execution may crash, truncate or break in general,
and the show code won't work.
So what I'm going to do is we're rerun this again and then let's see.
Cat character, stop.
PY want to copy the string?
This is excluding zero zero all of the hexadecimal digits from zero to f f but we're excluding zero
zero as that is known as a universal no byte, which means there will always be a bad character.
So we're going to copy this.
Copy.
This Nano first shot up high.
And then we're going to load it right here.
And instead of our CS, we're going to put in our
1048 A's plus speed, plus bad characters.
And then we're going to analyze that within the stack to see if we can find those back characters.
So Python first tried out pi.
Control, see the exit and then work to type extra dollars on DSP 200.
So just use the bottom as a reference.
Kapag church talks up high, but see how it goes from 012345678.
But then bam look, another bite form right here.
And Irving behind it just truncated as a mangled doesn't look right.
So we know that the first bad character is zero nine.
So let's make a note of that.
And then we move that from our bad character strength.
Control.
Q To quit out that again and then fire.
Our proof of concept again.
Next up.
DSP 200.
What else do we have?
Has been so repeating the bad character elimination process.
We actually found out that there were several bad characters.
Let's go through them.
So the back characters are 090a0d0 by 20 zero by two, F zero by three.
I say zero because that's how hexadecimal here is represented usually by zero x it just means backslash
x inside of our bad characters code.
So what we do is we run this again, DSP 80
and then also don't forget to delete the bad characters from our actual back character set.
See, we don't have a09.
We don't have a0a we don't have a0d within these bad characters.
So Python first try.
And then let's see, text.
Oh, Sonia, speak to 56.
So let's first try and look how our bad characters, I mean, our actual character set is matching up
to the rest of.
These.
Hexadecimal digits and hex.
Don't see how.
Just no more truncation.
Truncating means that whatever appears after the bad character gets mangled.
And basically there's two things that can happen.
Either it gets truncated, it may go surfing after it, or it just represents itself in a different
way.
If that happens, that's unpredictable assembly instruction, and that means that your execution will
likely crash.
Sorry.
I'm just looking through and just seeing that everything's counting, right?
It looks like it's right.
So right now we can generate our payload, which will be our next section.