Skip navigation

Death has been very much on my mind recently.  I almost lost my father in a very bad motorcycle accident last year, and am lucky to have a father today.  I also purchased a motorcycle last year, prior to his accident.  It has been in storage for the winter.  The thoughts of death, time, and purpose have not.

I lie awake at night, losing sleeping, contemplating the eternal void waiting for me at any moment.  I’m an atheist, I don’t believe there is an afterlife waiting for us when our time ends.  In fact, I think that merely believing in an afterlife fundamentally devalues the time we have alive.  After all, how precious can our time among the living really be, if our death results in more life.  This life, this time, is all we have.  It is all we are.  It is the most precious thing in the world.

I’ve been lying awake contemplating the risks I take riding my motorcycle.  The effect I could have on the people in my life for what is effectively an adrenaline boost, an intangible “feeling” of freedom.  I would be lying to say that riding a motorcycle does not fundamentally scare me, even though I have chosen to mount the bike time and time again.  In fact, it is exactly that respect for the risk that makes the ride so much more personally rewarding.  But is it worth the risk?  Does riding mean so much to me that it trumps the feeling of responsibility I have for the people I care about?

I watched my family wonder whether my father would come out of his next operation alive.  Whether he’d wake up.  Whether he’d lose his leg or not.  Whether he’d have brain damage.  We all had our moments of grief.  What really slapped me across the face was the reality of how temporary life truly is.  There was a sudden influx of guilt for wasting time, and a resurgence of a crushing lack of “purpose” or “place” in the world.

I feel, at some level, that I have an internal drive to serve, if not the world, my community.  That I have some duty to the people who have gone before me to see that the next generation has it better.  Which is almost nonsensical, because I lack all feeling of community.  I have isolated myself for as long as I can remember.

I have never truly felt as if I belonged somewhere – never in school, never in the navy, never among the artistic types.  I hesitate to say I feel nomadic, but it is at least mildly accurate.  The one exception is family.  It frustrates me that I’ve been separated from my family for nearly 10 years.  Even in my personal relationships, isolation has been a theme.  I have been separated from my fiancee for the past 4 years, simply because we’ve decided my degree is that important.  The feeling of time lost, of time that could have been spent building a life with the person I love, instead of getting a piece of paper society has decided is required… it rings in my head, and it’s deafening.

I feel as if I’ve been off chasing some goal I’m not sure really exists, wasting time I could be spending developing a sense of community, serving the people I care about, and bettering the lives of others.  I have often warned people that doing things just because “that’s how it’s done” is a bullshit reason to do them, but here I am realizing I’ve only been saying “do as i say, not as i do” yet again.

Why did I join the navy?  Why am I bothering with my degree?  Why do I work for who I work for, why do I do what I do?  What should I do with my life?  Who is really part of my life?  Why does any of this matter, if it only matters to me?  Have I forsaken what community I do feel I belong to in exchange for money and personal freedom?  Is that bad?  Does good or bad even matter in this conversation?  Do these questions even have answers other than “I dunno, I just bumbled along and here I am”?

Maybe it’s the feeling that, as I approach my 30’s, that I’ve wasted nearly a 1/3 of my precious time on this planet.  But that’s not true, what experiences I have had, I’ve enjoyed.  I feel, generally speaking, “fulfilled”.  I’ve carved out success in my career, and am reasonably well educated.  I have more resources to me than a majority of people on earth.  No, not just a majority, more than 99% of people on earth.  Just in terms of money, I could be considered in the top .2% of the entire world.

It would be insulting to billions of people to suggest my privileged, successful life has somehow been a waste.  It hasn’t.  Every moment of it has been a privilege.  A privilege I still don’t fully grasp.

I was recently lucky enough to attend an acting class with a coach I had worked with years prior (I stopped attending because I moved away).  This sudden wave of belonging came over me.  It may have been a moment of nostalgia, of longing for a time when I was so busy, and so full of myself – but, I don’t think so.  In discussing, critiquing, and asking questions about the scenes presented, there was a moment of community I only experience when I’m with my fiancee, or my family.

I never particularly cared to work in the industry.  What I loved was this collective creation of not just art, but actors.  It was the experience of watching people, over the course of years, become fuller – myself included.  Why should I not throw all my time at that?  Why not fly towards a place I feel I belong?

Life’s never really that simple, though, is it.  Family is on the east coast, and Ohana on the west.  Money may not buy happiness, but it sure as shit buys comfort.  Life rushes in, reality takes over.  Giving up a cushy, well-paying job to spend more time acting feels as foolish as riding a motorcycle despite the dangers.

But Death doesn’t care, and he’s inching his way closer with every tick of the clock.  What’s really important?

How do I spend my precious time?  Which opportunities do I take at the expense of others?  Which communities do I forsake to be with others?

Tick tock tick tock.  Make a decision and live with it.

If there’s a song I’ve identified with strongly over the past decade, It’s got to be “Hands Held High” by Linkin Park.  Bear with me now, it’s not one of their screamy emo songs, and it’s worth a listen in my opinion.

It has really changed for me throughout the years.

I remember when this album was released in 2007, shortly before I joined the navy.  Every step of the way through my enlistment, my service, and my separation – my understanding and appreciation for the song has grown.

I was a young man who saw his best friend join the marines headed to serve in Iraq/Afghanistan.  I remember the day he told me he would enlist, I walked through the rain the his house to talk to him in the middle of the night.  Being the over dramatic 18 year old I was, it felt like I was losing a friend – I was scared I might never see him again.

I remember crying, though I’m not sure I showed him my tears.

Nearly a decade later, I’ve not seen him in years, but feel as close to him as when he left for boot camp.  We (vets) often rely on the words “brothers and sisters” to describe our attachment to our fellow service members, though I believe we mostly have specific individuals in mind when we say it.

And it’s true, I think of him as much a brother as I do a friend.  (For the remainder of the article I will refer to him as “John”, though name is changed to protect privacy).

“Jump when they tell us they want to see jumpin
Fuck that! I want to see some fists pumpin
Risk somethin’, take back what’s yours
Say somethin’ that you know they might attack you for

Cause I’m sick of bein’ treated like I have before
Like I’m stupid standin for what I’m standin for
Like this war’s really just a different brand of war
Like it doesn’t cater to rich and abandon poor”

Before I joined, I can clearly remember hearing this as a call to action.  In my naivety, thinking I had a duty to serve – that i should follow the example of John, of my parents, and enlist in the military.

In all my misplaced bravado, I asked John to walk me into the Marines recruiting office when he was home on leave.  John, knowing me, asked me if I was sure – saying “I won’t be responsible for you being unhappy.  This is your decision”.

He knew me better than I knew myself – and I’m lucky the marines weren’t in the office each time I went down there, because I would have been a miserable Marine.

Not a terrible Sailor, though.  I think I did ok as a squid.

This last bit though…

“Like this war’s really just a different brand of war
Like it doesn’t cater to rich and abandon poor

Like they understand you in the back of the jet
When you can’t put gas in your tank
These fuckers are laughin their way to the bank and cashin’ the check
Askin’ you to have compassion and have some respect”

I always thought (when I was young) that most people join the military to “kill things and blow shit up” (to sum it up).  It took a good long 4 years for it to settle that the choice to join is as complicated and nuanced as any individual person is.

For some, the Military was their path out of poverty.  For others, it was rebellion against parents and people making all your decisions for you (oh the irony).

Some people struggling to get by saw it as a last resort, or as a way to escape a dangerous childhood (sometimes by putting themselves in even more danger).

Others joined out of a sense of duty to country or family, and some even came in “Because i didn’t want to go to college and my friends were doing it”.

I joined because

  1. I didn’t want to spend $80,000 to figure out i didn’t want to do something,
  2. I needed to get the fuck out of dodge, and
  3. my parents were military, my best friend was military, I wanted to be military.

So naturally, as an 18 year old shithead, I thought everyone’s story was as simple as mine.

I didn’t really understand these lyrics.   I had a great home life.  I grew up in middle-class white suburbia.  Nothing horrifically tragic ever happened to us.  All my friends were relatively nice.  I was mister happy-go-lucky.

 

Then I started seeing my shipmates having problems.

Broke – sending money home to family.  Why aren’t they working?  (2008…)

Debt problems.  How hard is it to understand not to overspend?

Drug use.  How hard is it to follow an order?  Just don’t do that thing.

Drinking and DUI’s.  What the hell man, call a cab.

Sailors w/ families get special treatment (good schedules, days off).  What about ME?

Fraternization happening everywhere.  Just follow the rules people.

 

As always, it all comes back around.

During my first tour I was burning the candle at both ends.  After work I would take acting, singing, and piano lessons.  I would get involved in some local charities/non-profits.  I was getting to know locals and have a life outside the command.

It was like living a double life.  People in the military “couldn’t see me being an actor”, and people in my classes “couldn’t see me being in the military”.  I was in a long distance relationship with someone who was arguably abusive.  The stress finally got to me, and my mental health started to decline.

Constantly exhausted, I found myself falling asleep during night shifts at work.  My chief found me one day (not the first time) and went off.  I broke down.  I cried.  I acknowledged that, despite my seemingly fantastic life, I was having suicidal thoughts.  I wasn’t taking care of myself.

He stopped, and he listened.  He took me aside and found help for me.   He did everything I wasn’t doing for the people around me.

I was being an asshole to everyone around me.  Everything was us vs. them.  I happened to do well at my job, and I felt superior to my shipmates.

It’s ironic that I spent so much time trying to be other people on stage, but I never really took the time to actually try to understand the people right in front of me.

 

I secluded myself a bit more after that.  I started to be protective of my time.  I tried, but struggled, to change my holier-than-thou attitude toward my work and my co-workers.

One day, a shipmate was getting hounded by someone for making a mistake.  And I could see on her face something was wrong.  I stepped in, asked her to step outside, and then tried to do what that chief did for me.  I asked her if everything was ok, and it turns out it wasn’t.  We got her the help she needed (at least I hope we did).

That’s when it really started to click for me.  That’s when I started to see the people in the military as my family.

That’s  about when I really started to understand these words.

Like they understand you in the back of the jet
When you can’t put gas in your tank
These fuckers are laughin their way to the bank and cashin’ the check
Askin’ you to have compassion and have some respect

For all the disdain and disregard I showed, I failed miserably at showing compassion and respect for the people around me.  Though they were present, I never really took the time to listen and let them into my life.  Even as they went out of their way to try to steer me in the right direction.

There was me, ignorant of life and mostly happy, telling people – Follow those orders.  Do what you’re told.  What’s so complicated?

Our pasts are complicated.  Our families are complicated.  Our love lives are complicated.  Addiction is complicated.  Money is complicated.   Health, especially mental health, is complicated.

 

My acting coach used to tell me “It’s easy to find the differences between you and your character.  Stop doing that.  Find the similarities.”

In my livin room watchin but I am not laughin
‘Cause when it gets tense, I know what might happen
The world is cold, the bold men take action
Have to react to get blown into fractions

10 years old is somethin’ to see
Another kid my age drugged under a jeep
Taken and bound and found later under a tree
I wonder if he had thought, “The next one could be me”

Now here’s some grade-A writing.  This verse alone has changed drastically for me in the short span of just a few years after getting out of the military.

As an 18-year old bravado heavy aspiring future-vet, I could only think “Me before them”.  I should join and do this, I should be one of the “the bold men” taking action.  I’ll be the one to save that kid.  I’ll be the one to help make sure these tragedies never happen.

 

9 Years later, and this verse gets me angry.  It pisses me off.  It reminds me of the horror we’ve inflicted on a bunch of anonymous brown people, and the utter neglect we show for our own society – all while paying lip service to “the vets”.

Syria and Iraq – Millions of deaths, civilian casualties through the roof.  Societies destroyed.  Kids forced into armies.  Men, Women, Children all brutally attacked.

Both caused by the failed tactic of regime change – championed by war hawks, and even straight up corrupt politicians who sent us to Iraq for personal reasons.

Vets at home are struggling to get the health care they need and deserve.

Our infrastructure crumbles, and there’s lead poisoning our cities.

My generation is now mostly slaves to their student debt – something prior generations don’t fully grasp yet.

I doubt the victims of the past decade ever thought “The next one could be me”.

 

And all our leadership wants to talk about is indiscriminate bombing and torturing the families of terrorists.

The big bad boogeyman of terrorism is coming to get you, but the weekly mass-shooting is just normal.

There’s bombs in the buses, bikes, roads
Inside your market, your shops, your clothes
My dad, he’s got a lot of fear I know
But enough pride inside not to let that show

That’s politics today.  Keep ’em afraid.

You know, the sad part is I think our leadership truly believes the false narrative they’ve spun for the past 15 years.

But everyone forgets.

My brother had a book he would hold with pride
A little red cover with a broken spine
On the back he hand wrote a quote inside
“When the rich wage war, it’s the poor who die”

A quote from Jean-Paul Sartre to sum it up.

What keeps us moving on this track is not fear – it’s a lack of compassion.

An absolutely amazing song, Mike Shinoda.

Thank you for reading.

This month I’ve been out of the navy for 2 years now.  It’s been an interesting transition.  I’m currently working part-time while attending Northeastern University full-time to get a BSMS in Computer Science.

The thing I notice about articles written for vets about their transition is… none of them are for me.  My time in the military, and my time transitioning, is probably MUCH different than most… but I know there are some people out there like me.  That said, I tried to write this opinion piece for everyone.

My Transition

Lets be clear about something, first and foremost. Everyone’s experience in the military is different. Sailors will tell different stories than soldiers will tell different stories than airmen will tell different stories than marines will tell different stories than coasties (<3 you puddle pirates).

And, as an extension of this, everyone’s transition will be different. Those with combat experience will see things differently than those who spent 6+ months out at sea, and those people will see things differently than the airmen/sailors/soldiers/marines who never step foot off of solid ground or in the sandbox.  Retirees will be dealing with different problems than 1-2 enlistment separators.

I, myself, spent 6 years in the navy without ever stepping foot on a commissioned vessel or aircraft.  I sailed a desk, and I made a difference doing it.  I don’t hide this fact, and I’m not ashamed of it (like some vets have tried to make me feel for never being in the “real military”).  However, I also picked up a few things about civilian life along them way, which has helped my transition immensely.

Even today, I struggle with things.  I fall victim to looking at my student-peers and judging them for their poor decisions… but then I remember I was stupid once.  Sometimes I browse /r/veterans looking for others going through similar struggles, or browsing duffelblog because it’s fucking hilarious.

Most of the articles I see posted about transitioning to civilian life aren’t for me.  They usually deal with things like: life-and-death vs. monotonous day jobs, 18-19-20 year olds who want to ask if you’ve ever killed anyone (and all the other questions that come from ignorance), boot camp stories, dealing with countless people telling you about brothers/sisters/cousins who were in, or how they wanted to join but decided not to… etc.  It all tends to come off as a parody, even if it’s not.

But, I can’t help but notice consistent “Us Vs. Them” attitude from vets – especially from veterans using their GI Bill.

This is a problem I think I can help with.  Here is something I’ve used to help me in the past 2 years.

I AM A CIVILIAN

Yes.  You are.  You are a Veteran… but, you are also a civilian.  You are not a service member, you are not a war fighter, YOU ARE A CIVILIAN.  When you talk about civilians in an “us vs. them” manner, try to remember that you are now part of both the “us” AND the “them”.

Most of us will never be rid of this way of speaking/writing.  I know vets who have been out for decades, and when we chat, it’s the same.  There is nothing wrong with it, but being aware of it is important because everyone else is.

MY PEERS ARE CIVILIANS.

What does it mean to “be a civilian”?  Generally speaking, it means you have to make your own way.  Most of your peers have had to make their own way.  For school-aged peers, maybe mommy and daddy have helped out along the way, and they had financial support, or whatever you think of today’s “millennial generation”, but try to understand that most of your peers have made their own way.

Civilians don’t have have a built-in support group of 1.5 million brothers and sisters, a UCMJ-like document telling them “right vs. wrong”, standardized instructions for how to wipe their ass, a highly structured routine, or the knowledge that “I’ll get my next paycheck in 2 weeks, no worries”.  These people have struggled, albeit in different ways than you have.   You can learn from them.

CIVILIANS CAN QUIT THINGS

Civilians do not have the built-in requirement of “learning to fucking deal with it” the same way service-members do.  We couldn’t quit our jobs, change our posts, choose what to wear, and sometimes we couldn’t even decide when/where we were allowed to take a shit.  Why would you expect someone who has never been put through that to understand (let alone respect) why their misconceptions place artificial barriers between you and them?  Why?  You’ve had that chief, or that sergeant, who “just doesn’t get it” before.  This isn’t any different.

The difference is, you are no longer required to “just fucking deal” with anything, everything is a choice.

Although, knowing how to hunker down and “dealing with it” is a serious asset.  It really does come in handy… often.

I WAS A CIVILIAN BEFORE BEING A SERVICE-MEMBER

Do you remember going to boot camp, at 17-18-19 years old (for most us, there are exceptions), and having all those grandiose misconceptions about the military?  You know, the same ones that cause you to grimace when fellow students, coworkers, family, friends show how little they understand what your 4+ years in the service meant?  Probably not.  Most of us have a difficult time considering that we were also like that at some point in time.   You probably even said things to some veterans that were cringe-worthy.  I know I did.

And then someone, somewhere along the line, un-fucked you (like they did me).  Maybe it was boot camp.  Maybe it was your tech/MOS school.  Maybe it was your first/second/third command… or maybe it never happened (we all know “that guy”, and if you don’t, it’s probably you).  I often consider it the point at which you can appreciate someone telling you to “un-fuck yourself, shipmate”, but it can mean different things to different people.

Pass it on.  Try to un-fuck people who you think are fucked up.  Which leads to…

I AM A CIVILIAN WITH LEADERSHIP TRAINING

Much of the difficulties I see for transitioning vets, like in this article, are a result of moving from a place where everyone “understands you”, to a place where no one “understands you”.

You have leadership training.  Up until now, that training and expertise has been focused toward people like you & I, with some basic level of understanding/operations.  We are now facing a situation in which we are the un-trained person.  Our skills are applicable, but only after learning to understand peers.   This is a very basic leadership trait – learn about your people/peers, understand their shortcomings, and understand your own shortcomings in reference to their personalities.

If you’re sick of the snake people telling you how and what you are, because Hollywood already taught them, then it’s your job to help change that perception.  Being condescending and spiteful ensures you’re just going to piss of whomever is pissing you off, and nothing will ever change.

I AM ALSO A VETERAN

You don’t have to shun your background.  I see plenty of comments along the lines of “i don’t tell anyone i served until i have to”, or “don’t be that person who makes everything about their time in prison the service.”  You have experiences from which you can garner understanding and respect, and training which you can fall back on for strength in the hard times.  You have millions of brothers and sisters who depend on you to help make the perception of veterans a good one.

Is that fair?  No.  But it wasn’t fair when you were in, being told your actions on leave/liberty reflect upon your branch of service.  You’re on permanent leave, and your actions still matter.

That said, you also have millions of brothers and sisters who can be there for you when times get hard.  But try to remember… I am also a civilian.

1 short piano.

http://theunboundedspirit.com/why-steve-jobs-didnt-let-his-kids-use-ipads/

I’m a little torn by this.

The only problem i have with this, on its face, is that it smells a little too much like a anti-tech solution, where someone would be teaching kids that technology is bad/worse than doing something “in real life”. That type of attitude will ultimately hurt a kid just as much, because you’re not exposing them to, essentially, a serious reality of society: Much of the work we do now is computer based.

Something like programming is a wonderful skill to have, and it’s applications lend itself perfectly to teaching a topic like math and even story telling (at the same time!). It shouldn’t be seen as a black-magic activity, when you can teach kids to create something like a game (which needs a story, artwork, and programming).

I mostly agree that there’s no reason for kids to have iphones, ipads, or completely unfettered internet access. If they’re using it to actually *do* something, then fine, but dicking around on the computer for hours on end reading reddit is worthless (I say this having spent most of my free time online in high school).

But, all that said, I also think there’s a major generational gap here. I grew up talking to and conversing with people on the internet. Actively participating in forums (which are more like facebook comment streams than email) is a wonderful way to express your own opinions, become exposed to the opinions of others, and have the freedom to explore and develop a curiosity for many things.

I spent countless hours writing stories, drawing art, developing games, playing games with other people, learning about how economies work in online games, learning to write programs and solve problems. Shit, i learned more about economics from a video game than I ever did in school (SAD). None of this was limited by my parents, and they would probably have been terrified to know I was actively working with other people online (we’ll call it “Everyone online is actually a 40 year old dude who wants to rape you” syndrome).

But, the fact of the matter is, while I was hurt by it in some regard (social development), it also allowed me to flourish and develop my own form of creativity. It provided me a safe haven from being a social outcast/bullying, and when all you have on the internet to look at is words you really start to understand how equal everyone really is.

I think there’s something to this, but it casts technology in a somewhat evil light, which I find to be silly. Every child’s needs are different, and every child’s interests are going to be different. For some kids waldorf may be excellent. For others, maybe not.

If a kid immediately takes to computers, and has a passion for it, and you take that away saying it’s bad… how is that any different than recognizing your child has an innate passion for music and taking away their flute?

The DefCon 22 quals have come and gone, and I was a new participant this year.  Thankfully, I didn’t leave with a big fat goose egg on my forehead, but I didn’t do so great either.  Most of my teammates answered all the questions before I got anywhere near the 3rd or 4th step of the challenge, and most of the reversing proved to be beyond me.

I did solve one challenge all on my lonesome however.  I solved 3DTTT before any of my teammates had done it, which surprised me as I found it relatively simple (and just a matter of prioritization).

The challenge itself consisted of connecting to a server that wanted to play a game of 3D Tic-Tac-Toe.  There was about a 3-second time limit on moves, which made it obvious that the play had to be automated.  Furthermore, you had to win an unknown number of rounds, and if you ever had -10 wins it disconnected you.  So the idea was to 1) Play fast and 2) Play good.

Difficult on the surface, but much easier than you’d expect.  Classic Tic-Tac-Toe is what is called a “Solved Game”.   A “Solved Game” means that the players can force a pre-determined outcome by making certain moves, regardless of their opponent’s strategy.  In classic tic-tac-toe, specifically, it’s possible to force a draw in a EVERY GAME, regardless of which player starts – and if the second player doesn’t make the correct move every turn, it’s a guaranteed win for player 1.

3D tic-tac-toe is a little more difficult, but still within the realms of being solved.  Here is an example game board

Top Level
-------------
|   |   |   |
-------------
|   |   |   |
-------------
|   |   |   |
-------------

Middle Level
-------------
|   |   |   |
-------------
|   |   |   |
-------------
|   |   |   |
-------------

Bottom Level
-------------
|   |   |   |
-------------
|   |   |   |
-------------
|   |   |   |
-------------

Now, 3DTT is a little different.  It works on points, and each complete line is 1 point.  Whoever has the most lines when all boards are filled wins.

So who has the advantage, player 1 or player 2?  Well, what’s the most advantageous place on the board?

In normal Tic-Tac-Toe, the center square is the most valuable square, because it can be used to make the most lines (4, two X’s, and 2 +’s).  Every other square on the board can only be used to make TWO or THREE lines (Corners- Three, Middles- Two).

This holds for 3DTTT as well!

Corners on the top and bottom levels can be used to make 2 diagonals (1 on the same level, 1 across all 3 levels), 4 straights (2 on each axis, on the same board and across all boards), and 1 completely vertical across all boards.  7 total potential wins.  These are Very strong places to hit!

Centers on the Top and Bottom level can be used to complete: 1 vertical, 2 straight on the same level, and 2 straight across all levels.  5 Total potential wins!  These are moderate assets, but still quite strong. They actually enable you to set up a constant string of wins, regardless of where you move, so these are really important.

Corners on the center level can be used to make 1 vertical, 2 straights, and 1 diagonal.  4 total potential wins. WEAK place to hit!

Middles on the top and bottom can be used to make 1 vertical, 2 straights on the same level (think T), and 1 straight across all 3 boards. 4 Total potential wins. WEAK!

Middles in the center can only 1 vertical and 2 straight lines.  3 potential wins! WEAK WEAK!

Oh but that leaves one last place we haven’t discussed yet…

The center square on the center board… 1 vertical, 2 straight on-level, 2 diagonal on-level, 4 diagonal all-levels, 4 straight all-levels… This single square enables you to obtain a whopping THIRTEEN POTENTIAL WINS.

So player one has a SERIOUS advantage, because he can immediately REMOVE 13 wins from his opponent’s potential pot, while enabling himself to hit a win every other move (which we will cover shortly).

 

So cool… move 1: Center Board, Center Square.  Check.

move 2: Center square of either the top/bottom board, whichever has not been taken

move 3: (maybe) center square of top/bottom board, if it has not already been taken.

Now what?  Well… the 3d nature of the game enables player 1 to have constant check-mate situations.  In a single player game, this board is an instant win for the X’s:

 

Middle Level
-------------
| X |   | X |
-------------
|   | O |   |
-------------
| O |   | X |
-------------

No matter WHERE the O’s move next, it’s an instant lose, right?  Well, if you own the center square on the center board, and the center square of another board – on your next move, you’ll either you complete an on-level line, or a cross-level line.  This is very important early game.

Looking at our list of squares, we see our most powerful spaces are the corners, so we prioritize those for the next set of moves

move: corner a
move: corner opposite of a on same board OR corner on opposite layer (1->3 or 3->1) and opposite end.  INSTANT POINT!

We do this until the corners are gone, and move on to the middles!

You can also see that middles on the top and bottom are as powerful as corners in the center board, so we can simplify our algorithm a little by just playing every possible corner first.  Not completely optimal, but way easier to implement.

Basically, you repeat this exact same strategy for the middles, and when you’re finished, you’ve completed the entire game and start the next one.

 

At this point, we COULD add some logic to prioritize wins or blocking your opponent, but the fact is, you’ve already removed enough potential point’s from your opponent (the defcon computer) to secure victory about 70-75% of the time.  So at this point… just let the thing run and start working on the next challenge! Woo!

The following code managed to win 50 games in a matter of about 5 minutes.  Granted, i was running on a university server with a very strong business connection, so take that for what it is.

Also I got lazy with my “prioritized wins” algorithms, so the corners and middles don’t play EXACTLY as mentioned above, but close enough.  Still enough to get the flag very very quickly.

ticbrute

GO GO SIMPLE COMBINATIONS/PERMUTATIONS!

 

I explained here that the most optimal squares to pick were based on the number of potential wins they unlocked, and that’s all very much in the spirit of tic-tac-toe… but how does it apply to netsec/hacking/exploitation at all?  At first glance, this is just a silly game of competing algorithms.

Well, think about all the protocols we use on a day-to-day basis, and how many rules they run by. Race conditions are a good example. If you can get your computer to return spoofed DNS responses faster than 8.8.8.8, you’re playing better and faster than your opponent.

But do you always have to play perfect? No. Personally I would have liked to see the defcon computer detect perfect players and refuse to play against them, forcing them to slow down/run imperfect games in order to bypass the security system.

If you’re loud about your attack, you get caught. If you make yourself look normal, you blend in.

Just some food for thought.

Quick soundcheck!  Better video next time.

I kinda made this strange decision a long while ago, that I wouldn’t be able to learn proper rhythm and learn to stay in-time on the piano without learning the drums.  Also it sounds fun, and I like making music, so I figure, hey, another tool in the toolbox.

So I started asking a few friends what a good electronic drum kit costs (because apartments are not conducive to regular drum kits) and looked up what it would cost to take lessons.  Price-point is right where I expected on both accounts, so I think i’ll be moving forward here in the next month or two.

School’s a bitch, but it’s no different than work in my opinion.  The fact of the matter is, you have work to do and you need to get it done.  School is actually HARDER because there is an unstructured schedule of when you can do work.  So you tend to put things off or work at really strange hours (which ultimately makes the entire semester feel like one really long grind).

But, we all have to remember to schedule in time for the things we really want to do.  So today, I took my first step.  Now to take the next one…

I’ve been having some fun over the past weekend getting my chops back up to speed with some wargames at overthewire.org.  So far i’m up to Vortex 9, and it’s been a bunch of fun :D.

Instead of going back and documenting 0-7 (which you can look up elsewhere), i’m going to start documenting from 8+ (which is nowhere on the web).  Here is the work i’ve done :]

First things first we need hacking music.  I recommend this series I wrote a while ago:

 

Ok, this is a reverse engineering challenge, so lets download a copy of vortex8.bin and boot up IDA to take a look at what’s going on.

We find the following execution

1. Start a new thread
2. Drop permissions from Vortex9 to Vortex8.

messthread

ccode

The only thing this new thread does is a really silly while(1) loop.

while1

while2

 

So this thread is just gonna print “0” to the screen every second.   I think I see where this is going.  Lets keep the fact that we’re calling “sleep” in mind.

The next thing the main thread does is make another call, which ends up providing us an opportunity to overflow a buffer..

callunsafe

strcpy

strcopy2

 

So overrun this 1032 byte buffer and we’ll hit the stored stack pointer & return address.  Easy enough… but we’ve got an issue

We can’t just straight execute from the stack, because we’ll be executing at “Level 8” permissions.  Instead, we need to get the thread running at “Level 9” permissions to run code that we put in the buffer.

So the other function makes a couple function calls, including printf and sleep.   Why don’t we try to overwrite the sleep function offset in the Global Offset Table, and get that other thread to start executing from this one’s stack (neat!).  We can do this because multiple threads in a single process share linear memory space.  If we had opened a separate process, we would have needed to find a way to open a remote thread/memory and write to it.  Good thing we don’t have to worry about that.

So first thing we should do is use gdb to get the GOT entry for sleep

sleepoffset

 

We’re going to overwrite 0x0804a008 to point to our shellcode on the stack.  To save time and space, my shellcode resides at 0xFFFFD26E.  You can use gdb to print out the value of ESP when you’re inside the unsecurecode function.  From there, just use the size of your shellcode to calculate exactly where it’s going to start (and how many nops you’ll need).

Lets write the assembly that’s going to replace this GOT entry and assemble it.  And then this quick little python function to display it on the screen for me to copy/paste (I use this for any thing i have to assemble & print, it’s a handy little tool imo)

sleepreplace

displaybin

displaybin2

 

cool.  We’ve got everything we need to make our final script

shell

 

I glossed over a few things.  So lets touch on that:

1. NO \x00 ALLOWED!  Your entire payload CANNOT have a \x00 in it (until the end).  strcopy() terminates when it hits a null byte, so you must ensure anything you assemble does NOT have a null byte.

2. You need to find your stack pointer and base pointer.  If you don’t realign the stack basepointer, when you RET onto the stack you’re gonna throw segfaults.  Make sure you overrun the stored basepointer with some place in memory that’s writable.

3. We’re going to execute the code to overwrite the GOT entry for sleep with the pointer for our shellcode on the stack, and then we’re going to \xEB\xFE in order to make that thread spin.   Remember, if we let the main thread die, then the program will terminate before we get to do anything with our shell in the other thread!

4. Now that we’ve overwritten the entry and started spinning, the other thread in the while loop should take care of the rest.  The next time the while loop comes around to call the “sleep” function, we should get execution of our shellcode.

lets try it out

winnerwinner

 

NEAT!

 

 

This is what I’m doing with my love in Vermont today.

utopes