Page 2 of 2

Re: Thinking about: DRM wrapper for releases

Posted: Sun Jan 12, 2014 6:50 am
by MrAdults
Now that I'm not posting from my phone, I'd also like to address this as a tangent:
Darkstar wrote:Reversing a program that someone else wrote to reverse a file format? Yeah, because with every layer you put on top the reversing gets easier and easier, right?
I suspect you don't do much actual reverse engineering yourself, or if you do you live the sheltered life of one who only disassembles native code, or worse yet, strictly guesses based on nothing but binary observations. :) When you're talking about shoveling together tools to reverse engineer something on a proprietary embedded system for a different CPU than your tool target, you probably aren't going to have debugging capabilities anywhere near as nice as the ones you have under a desktop OS. And even if you do have a very nice debugging and disassembling solution for the platform you're reversing from, you're still translating it to a different architecture. If you're just disassembling and targeting x86, you can tear the routines straight out of the app, plop them into your own, and you're tentatively done. From there you can step through them, take your time, easily put them through any kind of unit/sandbox test you want, and translate them way more easily with the aid of experimentation and observation in your own isolated framework. That's a far cry from translating blindly from raw disassembly because you can't debug on the platform, and even from translating to a different architecture using a likely limited (in comparison to the x86 debugging tools available) debugging environment.

So, yeah, unless the reverse engineer made a complete mess of things, it is a hell of a lot easier to reverse their work instead of the original in pretty much every case when we're talking about things like gaming console platforms. I can't name a single instance where I've chosen non-x86 over x86 for ease of reversing.

Re: Thinking about: DRM wrapper for releases

Posted: Sun Jan 12, 2014 11:28 am
by Darkstar
Now I see that we're talking about different things. You're mostly talking about reversing from different architectures, I'm talking about figuring out file formats regardless of architecture (and you're right in that I mostly work with x86 stuff)
Also I see that we have different goals, my goal for reversing a file format is to help as many people as possible to extract or change the contents, to enable mods, cheats, fantranslations etc., while your goal seems to be recognition, ego, and having others praise you for your work.

Which is fine, I won't judge people over that, it just helps me understand their motivations for sharing/not sharing source code and detail documentation.

Also, if money never was the issue, why did you bring it into the discussion? ;)

Re: Thinking about: DRM wrapper for releases

Posted: Sun Jan 12, 2014 7:32 pm
by MrAdults
Reverse engineering does not necessarily mean figuring out file formats. Figuring out file formats is just a possible side effect of reverse engineering. Reverse engineering is the thing that causes all of the interesting/unique issues here.

The desires of your ego are rationalized by your goals. You aren't feeding starving children and saving the world, and your abilities aren't unique enough to matter in terms of overall advancement. You can rationalize what you do as "making people happy" like any member of any entertainment industry, but it's really about you and your desire to feel whatever it is that you feel as a result of doing what you do. Unless you're some kind of sad Entertainment Jesus martyr figure, in which case I'm sure we'll all be lamenting your crucifixion one day.

I work on Noesis because I enjoy working on Noesis, and I enjoy the puzzles in reverse engineering. It's like sitting around and doing Sudoku puzzles, except in this case other people happen to be interested in looking at the solved puzzles. And in some cases, I enjoy sharing and explaining those puzzles to others, with the same sort of egotism a teacher indulges in sharing the culmination of their knowledge to their students. Those are the people that I respect on the basis of their character and the constructive uses of their talent that they've demonstrated. I enjoy it when someone uses Noesis to creative ends, to create something new, to refactor or process their own content, to learn and experiment. Unfortunately, those people are an extreme minority here.

I mentioned that 3 in 10,000 people have donated as a way of pointing out that 3 out of 10,000 people have said thanks in a way that actually inconvenienced them to some degree. Even when we set the bar for saying thanks down to merely saying "thanks", far fewer people have said thanks than have abused Noesis and disrespected me by going against my wishes and against regional copyright law. We can't rely on source code licenses to protect us, because we aren't in a place to try to enforce a license on source code that's derived from disassembled binary. We could certainly lie about it entirely and say that all of our code is "clean room" engineered, but everyone would know that was bullshit, and it would not stand up to any sort of scrutiny. And do you know what open source development is without enforceable licensing? It's disgusting. Because people are horrible and disrespectful, and if there were no legally enforced consequences a shockingly high percentage of the global populace would be happy to rape your mother.

Re: Thinking about: DRM wrapper for releases

Posted: Mon Jan 13, 2014 12:31 am
by Bastien
MrAdults wrote:0
My policy these days is, if I have a reason to respect you, I'll give you code, specs, and help and expect nothing in return. If I don't have a reason to respect you, it's probably because you haven't done anything to impress me in the context of this community, which means you're probably the type to take a lot and give little to nothing back, therefore you deserve nothing from me. It's a haphazard system, but it works. Unfortunately, it's still a closed system in its nature, but people have shown that they just can't play nicely in an open environment.
This is interesting, I think many veteran members have that policy too. I'm thankful that many users have helped me with lots of questions even when I did no contributions.

One thing I observe is that there's not enough information about disassembling games so one could save time in learning it elsewhere (like this site, which is focused on cracking)
I'd appreciate a lot more to have a video/doc on how you did disassemble x game to find out x format than the file spec per se.
So maybe that lack of information prevents new users to reach your level and make significant contributions (and impress you?).
Making documentation/tutorials is a lot of work, but at least you're not giving anything for free, they'll have to read/practice a lot to get any value from it.
Anyways, I just realized I could actually do some tutorials, so I'll start by that.

Re: Thinking about: DRM wrapper for releases

Posted: Mon Jan 13, 2014 5:24 am
by MrAdults
I did exactly that a couple of years back for FX Fighter:

http://richwhitehouse.com/index.php?postid=63

It covers my whole process from start to finish, using IDA as my disassembler and DosBox as my debugger. You can use the latest freeware IDA for everything I cover there. For learning how to use IDA, there is a ton of material on Google and YouTube. It just takes practice to be able to do things quickly and effectively, and you develop a sense for things as you go. There is no real hidden knowledge barrier to entry.

Re: Thinking about: DRM wrapper for releases

Posted: Tue Jan 14, 2014 1:26 am
by GMMan
Mr.Mouse wrote:
GMMan wrote:An observation I've made: isn't MultiEx Commander using a similar system, sans encryption, by withholding program data without valid login?
Interesting observation, how did you make it ?
I install Privoxy on all my machines for basic blanket filtering for anything that uses HTTP (and respects proxy settings on Windows). One of its features is logging HTTP requests, complete with url-encoded parameters if the request is a GET request. I just stuck in each URL requested by MultiEx to download whatever files it serves up. There was something in the registration mail about if someone redistributes MultiEx login details the login would be invalidated and the person would get a corrupted MultiEx. So I assumed that's what happens with an invalid login (which serves up a zero-length page).

As for the thread: It's nice to provoke some discussion. I release all my programs with source code, since I'm too lazy to write proper documentation, and it would be easy for others to update things if necessary. As I said in the first post, I don't mind distribution, but it would be nice if they'd at least include a link to the original download page so people can get updates. For those who do distribute without linking, it's a loss to themselves and their community. For one of my tools, the other site was months late into updating, and when they ask questions, they won't get answered because the person who rehosted doesn't (or can't) care, and I'm not considering joining their forum any time soon. My DRM idea isn't anything permanent. I only really want to try it once to get a reaction (I doubt anyone here are avid Gameloft modders; their games are a bit on the cheap side, both monetarily and graphically), plus it'd be nice to do something that's different than a packer/unpacker. I wouldn't be miffed if someone cracked the DRM. In fact, I'd encourage people to crack it. It's all in fun, just as I'm not actually serious in trying to limit the program to Xentax members. As I said, I'm a bit of a sadist, and would like to see those only use tools and not do any research whine, even if to just stoke my ego.

Re: Thinking about: DRM wrapper for releases

Posted: Tue Jan 14, 2014 2:35 am
by MrAdults
Well, it's good to be honest about it, at least.

In all candor, I might make the effort to do a proper Noesis source release one day. But I'd have to remove/rewrite all the data processing code and math routines that I've contractually obligated myself into not releasing. I'm certainly not motivated to go that far, mostly because I hate 99% of the people who want the code, and the other 1% I just help and offer code/info to directly. That's also why I usually just throw up a .cpp file without all the dependencies and watch people whine about not being able to compile it directly when all it would take is 10 minutes of effort to plop it into another working framework. Unless I wrote it in Python. In which case, it's Python, you lazy fucks. Usually people just rip that off directly and make a few changes so it works in blender. Heaven forbid they do anything to assist or support the Noesis framework in the process.

Re: Thinking about: DRM wrapper for releases

Posted: Wed Jan 15, 2014 3:57 pm
by Demonsangel
This has nothing to do with the current topic, but I just want to say I love you mr.Adults for the support on mld and valve files. They make my life a lot easier to create 3d models/items for dota 2.

Re: Thinking about: DRM wrapper for releases

Posted: Sun Feb 16, 2014 6:55 pm
by xawari
GMMan
yes, you ARE crazy :)

DRM makes people HATE you. Want proper credits - add CAboutDlg :D Want your program to live - make it opensource.