Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / October Newsletter # 81 is out!

Author
Message
Mike Johnson
TGC Developer
22
Years of Service
User Offline
Joined: 13th Sep 2002
Location: United Kingdom
dark coder
22
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 1st Oct 2009 11:34
Lol @ Lee's Tip of the Month - That's probably the worst bit of code I've ever seen to make a hacker's life harder, it may make it harder to write a trainer as you can't use a simple offset but when doing a memory search that approach won't make it any harder than just searching for the value like you normally would. Why didn't he just do the checksum(well... a hash if it's just a single variable) approach he mentioned? It'd not only be way better, but also far easier to implement and understand.

And why does the survey jump to questions about FPSC model packs and features when I didn't tick I was interested in FPSC, nor did I tick I owned it?

BatVink
Moderator
22
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 1st Oct 2009 12:49
Lee's tip is a gentle introduction to the topic, not the complete solution. For anyone who hasn't already considered it, it gets the cogs turning.

Butter fingers
19
Years of Service
User Offline
Joined: 20th Mar 2006
Location: Mecca
Posted: 1st Oct 2009 14:21 Edited at: 1st Oct 2009 14:22
LOLs DC, that's a great sig...


I want robotic legs.

Attachments

Login to view attachments
KeithC
Senior Moderator
19
Years of Service
User Offline
Joined: 27th Oct 2005
Location: Michigan
Posted: 1st Oct 2009 15:43
Great Newsletter; lots of activity for the future!
dark coder
22
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 1st Oct 2009 16:07
Quote: "LOLs DC, that's a great sig..."


Thanks, keep in mind that it doesn't mean to say I think I'm the best coder , if you know the source material, then it kind of implies the exact opposite.

David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 1st Oct 2009 16:30 Edited at: 1st Oct 2009 16:30
Quote: " get a fussy feeling inside."


^ Typo in Lee's tip (Unless a "fussy feeling" is something I've just never heard of )

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 1st Oct 2009 16:56
LOL DC that picture is epic! - wonder if you can buy it as a poster anywhere.

Another great issue, is it sad that the TGC newsletter is the only thing I actively read every month these days! - it's like my modern equivalent of ST Format.


Health, Ammo, and bacon and eggs!
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 1st Oct 2009 17:33
It's a great poster, but not authentic obviously

Good newsletter read.


Senior Web Developer - Nokia
Visigoth
20
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 2nd Oct 2009 06:04 Edited at: 2nd Oct 2009 06:37
Nice tip. Kind of related, I had a problem with a person looking at my shader code. I came up with a very simple solution to this. Never, ever, will anyone be able to just look at will at my shaders. I verified this with some clever "comments" in the "readable" code. The offender took the bait. The "offender" never commented on the unreadable stuff, so, I assume it worked. Some day, maybe, I'll share this idea.

edit:
about DC's sig
Is that Kim Jung Il with a Darth Vader mask?
edit again:
ok, I clicked on the "source material" link, and, it is confirmed.
I get it, I get jokes.
Benjamin
22
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 3rd Oct 2009 06:26
Quote: "Never, ever, will anyone be able to just look at will at my shaders."


Pretty sure they can be easily ripped although I may be wrong.
Mireben
16
Years of Service
User Offline
Joined: 5th Aug 2008
Location:
Posted: 3rd Oct 2009 16:02
Survey: Can someone explain what's the difference between "Hobbiest" developer and "Indie" developer?
Veron
18
Years of Service
User Offline
Joined: 22nd Nov 2006
Location:
Posted: 3rd Oct 2009 16:06
I'll hazard a guess at indie being someone who develops the game and publishes it, but isn't part of a large corporation. Hobbiest would be someone who makes the game and releases it on places like the TGC forums for free.

Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 3rd Oct 2009 16:56
An indi developer is more likely to make money, or at least try and make money with their games or apps. Indi meaning indipendant, like a very small software company that publishes software itself, through XBL or Steam or usually just a website order system.

It's a grey area though, because really if a hobbiest developer makes any money then they could call themselves an indi developer, and an indi developer doesn't necesserily make any money.

I guess it depends on yourself, if you want to make money from your games eventually then call yourself an indi developer, if it's all just for fun, entering competitions etc and developing for yourself, then your a hobbiest.


Health, Ammo, and bacon and eggs!
Mireben
16
Years of Service
User Offline
Joined: 5th Aug 2008
Location:
Posted: 4th Oct 2009 15:05
Thank you for the clarification!
Visigoth
20
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 5th Oct 2009 03:42
@Benjamin

Quote: "Pretty sure they can be easily ripped although I may be wrong. "


I accept your challenge. I will write a small app, in the next couple days, that has a simple shader. In that shader, will be a special comment, just for you. But, you will also need to show me a complete text file of the shader.
If you are able to do this, then, it will answer another question for me, a question I will only reveal if you are able to do this.

Of course, this challenge is open to anyone and everyone.
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 5th Oct 2009 21:04 Edited at: 5th Oct 2009 21:21
Quote: "I accept your challenge. I will write a small app, in the next couple days, that has a simple shader. In that shader, will be a special comment, just for you. But, you will also need to show me a complete text file of the shader.
If you are able to do this, then, it will answer another question for me, a question I will only reveal if you are able to do this.

Of course, this challenge is open to anyone and everyone."


If the GPU can execute it, it can be ripped. Simple as (maybe not with comments, but the actual instructions definitely can)

(Download PIX, find the shader name/id in the info listing and it will give a full disassembly, and even original code depending on how it was loaded)

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 6th Oct 2009 04:09 Edited at: 6th Oct 2009 04:10
Would that work if it was packed with a tool like Molebox? Probably not.


Senior Web Developer - Nokia
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 6th Oct 2009 12:59 Edited at: 6th Oct 2009 13:01
Quote: "Would that work if it was packed with a tool like Molebox? Probably not."


If the GPU can execute, the disassembly must exist somewhere, and hence PIX can display it. From a file I/O point of view, sure - encrypted runtime stuff will stop you from getting to the original file. But intercept it at runtime and all of that protection dissolves to nothing because you can step through exactly what the GPU is doing in each frame (unless it does something crazy with DX, but I can't imagine how it could possibly obfuscate raw shader code on its way to the GPU/prevent applications from querying the low level state of the GPU and whatnot)

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Jeku
Moderator
21
Years of Service
User Offline
Joined: 4th Jul 2003
Location: Vancouver, British Columbia, Canada
Posted: 6th Oct 2009 17:04 Edited at: 6th Oct 2009 17:05
Well out of curiosity I'd love to see someone here try. If someone wants to post their ZIP here I'll pack it up with Molebox Pro and see if someone here is successful in grabbing the file. If if's truly as "simple" as David R says, then surely those kinds of companies need to be knocked down a peg or two.

I don't have any experience with shaders, and I know that DBP EXEs don't work with Molebox, but a regular Visual Studio project with some simple art should work fine. David R -- will you volunteer to try to hack an EXE if I make one?


Senior Web Developer - Nokia
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 6th Oct 2009 19:58
You can do it yourself

Download the DX SDK and run PIX. Attach it to an app, allow it to play, find a frame where the shader is "on show" and then right click and do "Debug pixel". It will show you every DX object/context associated with the pixel, including the shader (at which point it can offer the code if available, or disassembly for it)

Can't remember exactly what you need to do to get it to allow Debug pixel (might be explicitly telling it to debug shaders) but it shouldn't be too difficult. The program may also prevent you from doing this on an app without an accessible PDB - I'm fairly certain it shouldn't, since it's a perf. analyser not a full blown debugger, but sure, I may be eating crow if it doesn't

In principle though (and not meaning to be condescending or rude) - it makes perfect sense that the shader can be nabbed irrespective of its on-disk storage. In exactly the same you could (theoretically) nab the disassembly/instructions of an x86 binary from memory if you knew where it was loaded to - irrespective of how it was packaged (because at some point the packaging has to present the content as a 'normal' shader/binary to the CPU/GPU or whatever it is).

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0
Visigoth
20
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 7th Oct 2009 07:28
@David R
I never knew about this tool. Reading thru the documentation, it looks like for DX9 you only get assembly. In DX10, you get HLSL or assembly. So, my experiment would fail. I'll still try it, no time right now, but, looks like it can be easily exposed.
dab
20
Years of Service
User Offline
Joined: 22nd Sep 2004
Location: Your Temp Folder!
Posted: 8th Oct 2009 08:04
That was a wicked newsletter!

That piano thing was so cool! I swear I felt my heart stop for a second! (Lots of ! eh?)

Login to post a reply

Server time is: 2025-05-25 20:12:57
Your offset time is: 2025-05-25 20:12:57