/ASG/ - Assembly General

/ASG/ - Assembly General

Cracks edition

All things assembly

Other urls found in this thread:

opensecuritytraining.info/IntroX86.html
opensecuritytraining.info/IntermediateX86.html
tuts4you.com/download.php?list.17
beginners.re/
twitter.com/NSFWRedditImage

>wangblows

thats the gayest program ive ever seen

cant wait to deport u to the other side of the wall

enjoy mexico, hombre

I've been trying to make sense of the code for populous:the beginning for the past couple days. Crashes on new graphics cards and I'm hoping to fix it.

Reverse engineering COM calls, though, isn't fun

OP, what exactly are you doing? Also, don't you think ASM is way too advanced for Sup Forums? Should have posted an iphone thread.

COM calls? 1995 called, they want their DOS int21 back.

Obviously making programs free. They were dumb enough to include the serial in the program.

>COM calls? 1995 called, they want their DOS int21 back.

>durrr look how sm4rt I am I recognize what a COM call is
>im a hacker lol
>thats SOOOOOOOOO 1995
>so out of date lol get with the times faggot

it's a 1980s game you fucking retard

get the fuck off Sup Forums you autismal cunt, you are not respected

third game is from 98

you're right
the first 2 posts are useless baitposts

how do i into 65c816

Where would I get that idea from? Go to bed grandpa.

tfw no ollygdb for loonix

Try Evans Debugger for loonix.

What jobs can I get doing assembly programming? I'm concentrating in systems architecture so I'd like to be able to do the thing I have knowledge in. East coast btw.

get Hopper

ill try, it's just that im kinda familiar with olly, well im a shitter when it comes to RE but at least I was comfortable enough to navigate around and make simple bypasses by patching a few instructions here and there

automotive, i think
robotics and embedded in general

prepare to write software for "white goods" for the rest of your life

industrial espionage/reversing stuff
also anything where you need to juggle a lot of numbers and can take advantage of custom-tailored simd

>automotive, i think
Haha, no.

What are the basics to crack a program I already know c++ where do I start?

learn the x86 instruction set, then get a debugger/disassembler like ollydbg.

How do you actually crack a program

Please, op, tell me how to learn disassembling. For example I need to disassemble some program and write c++ code that compiles to same program, what should I do?

forget x86, learn x64 instead, it includes x86 sets
google 'Practical x64 Assembly' by whatsacreel on utube and get you feet wet in asm so you could read and programm some asm. then google 'Lenas Reversing for Newbies' tutorials and then google TiGa's Ida tutorials

theres no universal way to crack a program. they're all different. usually, it involves reverse engineering the serial number/product key validating code

What cracking?

thanks

learn how to use a debugger

you won't be able to decompile c++ code and recompile it, you could only figure out how a program works and then write it yourself from scratch (if you want to copy a competitor software for example)

offtopic but is there a real reason why c++ code can't be decompiled?

>using olydbg on WoW
>want to trace a button click to something so I can call it from my program
>traces back to a single JMP
i don't get this shit

I think online games are usually programmed in a way to make them hard to read through debuggers to stop hax0rs.

Does anyone know the exact compiler/linker/assembler used by Nintendo for their NES and original Gameboy games?

Finally an interesting general..

Where does one learn Assembly used for REing?
Is there a defacto Reverse Engineering book?

Probably the ones provided by the chip manufacturer.

I think this might help, it's intended for network hacking but it goes through the steps of reverse engineering C code I think to explain exploits.

Why do you think it's gay? It's one of the only ways to play old school DOS games with a modern controller, it's very useful actually.

the original info is stripped away during compiling, some code gets rewritten for optimization, you get machine code, which cpu can execute, Ida with Hexrays can make sense of some of it, and that's that

>Third game
Whats your point?

I already know about that book.
I already know a bit of C

My problem is with actually reading the assembly instructions but im starting to assume it will stick after trying and trying

radare2 is the vim of linux debuggers

still it's the client from 2006 and I wasn't expecting it to make no sense.
Maybe Im just too dumb

It's not just C, it examines the output machine code.

how fucking retarded can you be, you claimed the game is from the 80's but the game you are trying to play is from 98. if you want to play the original game just use dosbox or play the amiga version

Have you looked at where it jumps to? Because if it's a button then the code is likely written into memory and then just jumped to on the keypress, rather than writing the button function each time.

okay ill give it another go :^)

have a bump, nice thread

also read picrelated while you at it, single best book on how computers started/work, makes it easier to understand asm

So is it a case of object orientated programming creating machine code that is far too abstract for a decompiler to reinterpret as C++? Because a computer being a procedural machine it doesn't actually "understand" OOP so the compiler creates code optimised as a procedural list of instructions?

there's a single jump that goes to some functiony where it makes some calls and jumps around
What's weird is that this happens on every buton press, so both login and quit button trigger it.
Was this supposed to be some function that takes any button press, identifies them then does whatever it's supposed to do?
This isn't even in the game , but rather the login and character select screen where anticheat shouldn't even be active

if simply clicking the button is enough, use autohotkey(and a VM if detection is an issue)

I think you're confusing me for two people.
Yes, I'm working on trying to fix the '98 version. Someone else mistook it for the original.

>kek
>the most nasty string obfuscation i've ever seen

also what I did was make a breakpoint on the call that's responsible for the sound playing
Since the button makes a noise every time you click it, I figured this is the only way to set a breakpoint on the button. After that, I just looked at all the places which call the sound making code and kept going backwards until I got that jump

So I found something but idk what to make of it

think of it this way: take C code, port it to java. now port this java code back to C. You won't get the same code of course.
It's like translating languages, if you translate a text into english and back you won't get the same text back, merely a similiar one. The differences between C and assembly are fairly big as well as compiler optimizations which transform the code(i.e. from a = 2 * x / 4 to a = x / 2)

>Was this supposed to be some function that takes any button press
Likely the event handler, I think the complexity probably comes from the login function having a lot to do to connect to a server. Authentication, checking the client version, parsing string information, etc.

Perhaps you should get some practice with a more simplistic game first where you know the start/login button just jumps to rendering the next screen?

I mean if reverse engineering is new to you (and it is for me as well), maybe games in general are too complex for beginners.

Also the game is almost certainly threaded and so maybe you're jumping back through the thread intended for sound? I know that sound is often programmed to be completely separate from the main game threads because juttering sound would be annoying.

Not him, but what are some good applications for beginners? I'm already proficient with C, know some basic assembly, read some RE tutorials and whatnot, but I still take hours to search particular values/pointers in memory and anything more sophisticated than that(eg. narrowing down a particular function that modifies that value and when exactly it does so) has been more or less hopeless, despite the fun of it, so far.

Maybe some sort of open source command line program? Mostly because they are smaller and you can also compare the source code to your findings to see if they were correct.

you can try cracking crackmes that other people write and also writing c++ programs and studying how they decompile, then writing more complicated ones

yea, this makes sense
The main problem I'm facing is finding where to put a breakpoint to catch that button call.
Look at the intermodular call, nothing makes sense

I'm afraid I can't help you there senpai

What's a good place to start with reverse engineering? Cracking old programs? Cheating in games? Trying to decipher Intel microcode patches to discover the secrets behind AMT?

Write your own login system, then open it in ida and try to crack it.

Also OP is a fag for using white theme.

So actually what application would you suggest to crack smaller applications and stuff? (got OllyDbg on windows, dunno about Linux, inb4 gdb is gay)

Make a graphics/resource viewer for your favorite 8-bit game

Is x64dbg good yet? It appears to be getting bloated by new features.

Newfag here. Why are you using 2 debuggers/disassemblers? IDA is a debugger too, no?

Not OP. I prefer ollydbg/x64dbg over IDA because you have to fiddle with a windbg server first to debug x64 applications in IDA. Also the debugger interface in IDA is broken and hard to use.

IDA is still top for static analysis of binaries.

It's shit.

well after 9000 NDAs and after you will agree to sell your firstborn son as a test subject and your wife as a sex slave if you violate it.
remeber that 8MB of memory is a huge amount and CAN bus is weird and non-deterministic POS

Programming for automotive systems, especially off the shelf solutions, is just plain not done in assembly. It's done in C with special guidelines.

A great book is practical malware analysis. It is aimed at being able to reverse malware but the same principles will apply to reversing too. If you don't care for that, use the following resources:

opensecuritytraining.info/IntroX86.html
opensecuritytraining.info/IntermediateX86.html
tuts4you.com/download.php?list.17 (recommended to run within a windows xp vm, same as the practical malware analysis book i recommended)
beginners.re/ (great book/pdf on reversing)

You're right about IDA being shit when you attempt to use it with a windbg server. Especially kernel mode. Shit is borked.

Is 68k ASM good to start with?

There are applications in the security field, especially for governments etc. Also, while it isn't programming in asm, you can do malware analysis etc, which requires a solid understanding of asm.

look up lenas reversing tutorials on tuts4u. Its 32bit x86, but the concepts are very well explained. Its easy enough to pick up 64 bit once you understand 32 bit.

Anyone here Anyone here using Binary Ninja? How is it and how does it compare to IDA?

It doesn't really have anything to do w/ OOP specifically. It has more to do with compiler optimizations etc. The compiler does a lot of stuff to make the code smaller/faster, and its rarely something that can be translated reliably back to the original code.

C++ does add additional complexity with vtables etc, but even without the OOP stuff, you can't really get sensible source back from a program compiled with optimizations.

start with mcs-51

Used j2k many times. Need to find an updated version.

What's a good tutorial to learn 6502 assembly using a NES emulator?

I heard its cheaper than IDA. As for better, idk.

>/ASG/ Autism Spectrum General

Best assembly language, and best windows IDE/compiler? Noob here wanting to learn

Also, what would be a good way to learn asm?

I saw practical x64 assembly, but other resources are appreciated.

Yes.
I feel like its too early to buy it. Lots of very important features missing. Right now i suggest Hopper on GNU/Linux instead.

>tfw I'm doing assembly programming for my systems class right now

god damn it you retarded fucking faggots, if you're going to use a shortcode you put it in the subject so that people who want to filter it can do that.

The only painful thing introduced by oop tends tends to be dynamic dispatch (objc / virtuals in c++).

>implying this will be a general instead of dropping off soon
these generals can never sustain themselves sadly.

>tfw no ollydb for loonix

maybe it's the first drop after the click which registers as the quickest signal and thus is the first action that comes out on the other end.

get that 800 page book about it

is radare2 the best linux reverser?

nesdev.com

How is NASM for beginners ?

Dishonored 2 crack when?

how?

shitty question, what exactly do you want?
some kind of renderer?
a bitmap decoder?
something else entirely?

push 0b800h
pop es
xor di,di
mov si, offset pepe
mov cx, 2000
rep movsb