ALERT!
Click here to register with a few steps and explore all our cool stuff we have to offer!

Jump to content



Photo

My Assembly Guide


  • Please log in to reply
My Assembly Guide

#21

dragonhd193
dragonhd193
    Offline
    0
    Rep
    0
    Likes

    Lurker

Posts: 2
Threads: 0
Joined: Sep 23, 2015
Credits: 0
Eight years registered
#21

Thank You very


  • 0

#22

pruned_52940758
pruned_52940758
    Offline
    0
    Rep
    2
    Likes

    New Member

  • PipPip
Posts: 18
Threads: 0
Joined: Sep 23, 2015
Credits: 0
Eight years registered
#22

thanks you 


  • 0

#23

pruned_52940758
pruned_52940758
    Offline
    0
    Rep
    2
    Likes

    New Member

  • PipPip
Posts: 18
Threads: 0
Joined: Sep 23, 2015
Credits: 0
Eight years registered
#23

thanks you 


thanks you 


  • 0

#24

pruned_5053788
pruned_5053788
    Offline
    0
    Rep
    11
    Likes

    New Member

  • PipPip
Posts: 18
Threads: 0
Joined: Sep 21, 2015
Credits: 0
Eight years registered
#24

nice man . tks you  :)  :)


  • 0

#25

kalaway
kalaway
    Offline
    0
    Rep
    2
    Likes

    NubSayBot

Posts: 27
Threads: 0
Joined: Sep 23, 2015
Credits: 0
Eight years registered
#25

Good guide ! Thank you very much. I really apreciate.


  • 0

559227402a7376e10528ceed91fd2dd9-d7a4xam

Don't Forget to Have Fun !


#26

heere
heere
    Offline
    0
    Rep
    1
    Likes

    New Member

Posts: 23
Threads: 0
Joined: Aug 27, 2015
Credits: 0
Eight years registered
#26

Instructions: Instructions are the operation of the processor (CPU) determined by its instruction set.

Instruction Set: An instruction set is a group of instructions that the CPU can execute (reference: instructions)

Now: Let me start off with some basic instructions.
[mov - move]
[add - arithmetic add]
[sub - arithmetic subtract]
[jmp - jump, jumps to a code location(even for conditional jumps)]
[jne - jump if not equal]
[je - jump if equal]
[ja - jump if the condition is above]
[jb - jump if the condition is below] - Literally, if you view an application in a disassembler it means if the condition is above or below the jumping address
[cmp - compare]
[test - this performs an AND conditional, if both the operands/registers are non-zero then the condition becomes true]
[push - pushes a value/address onto the stack]
[pop - pops a value/address from the stack]
[inc - increase/increment]
[dec - decrease/decrement]
[ret - return]
[call - calls a subroutine/function]
I didn’t include all the instructions, nor all the jump instructions either

mov eax,ecx; this moves the address at the register ecx into eax
[assembly comments are after the terminator/semicolon “;” and are ignored by the compiler]


add [ecx], 0xFF; this adds the value 255(decimal) to the value of the ecx register, that’s what 255 is in hexadecimal
add [ecx], 255; you can do this as well

register - no brackets = the address of the register
[register] - brackets = value of the register

As you can see the instructions are used here and they’re complemented by an operation. So think of it like this:
add = instruction
add eax,15 = complement of the instruction making it an operation code
mov [eax+15], 0x00; this moves the value 0 into eax and offsets it 15 places from the location

Register: Registers for now, are basically storage units to place values (EAX,EBX,ECX,EDX,EDI,ESI,ESP,EBP)
Stack: Keeping it basic, storage for where the registers are pushed/popped, It's a Last In First Out structure.


Now lets make this more of a program shall we? (I’m not going to include all of the data definitions but you’ll still understand it)
This is a simple register check

add [eax], 100
cmp [eax],100
je successful; if the comparison is not successful then it skips over this
cmp [eax],100
jne fail

successful:
ccall [printf],”good”; printf is C
ccall [ExitProcess]

fail:
ccall [ExitProcess]; Immediately exits the process


Memory Address: Really, it’s just a data-type
Memory Regions:
.data is where most of the variables would go
.code/.text is where the executable routines of the program are located
.idata is where data/libraries are imported

 

Quick App Patching:
Tool you need: Cheat Engine
App to be patched: http://crackmes.de/u...ou_can/download
Open the application and attach cheatengine to the process, do a referenced string scan
Go to the reference for “You got it.” (not the actual string)
You should see this: http://puu.sh/atK28/316e225f19.png
Change the je to jne
remember je = jump if equal

jne = jump if not equal

We’re changing it to jump if not equal because it will jump to SUCCESS if the key isn’t correct. If it was jump if equal then it would only jump if the key was right.
Think of this as like an if condition.

 

Nice guide, 


  • 0

#27

hoangha02
hoangha02
    Offline
    0
    Rep
    11
    Likes

    Member

Posts: 30
Threads: 0
Joined: Sep 26, 2015
Credits: 0
Eight years registered
#27

oh ! Great


  • 1

Gone with the wind


#28

whatdoyou1
whatdoyou1
    Offline
    0
    Rep
    7
    Likes

    New Member

Posts: 19
Threads: 0
Joined: Oct 07, 2015
Credits: 0
Eight years registered
#28

ty


  • 2

#29

pruned_5175392
pruned_5175392
    Offline
    0
    Rep
    20
    Likes

    Member

  • PipPipPip
Posts: 26
Threads: 0
Joined: Sep 20, 2015
Credits: 0
Eight years registered
#29

i'm trying it now


  • 1

#30

brolykeepo
brolykeepo
    Offline
    0
    Rep
    6
    Likes

    Member

Posts: 38
Threads: 3
Joined: Oct 18, 2015
Credits: 0
Eight years registered
#30

Very nice guide!


  • 0


 Users browsing this thread: