flat assembler
Message board for the users of flat assembler.

Index > Main > [Question] Reguarding Flat Assembler

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
Black0ne



Joined: 21 Oct 2009
Posts: 9
Black0ne
I was looking on the forums and haven't encountered any other post regarding this so i figured id make my own thread to ask.

I was wondering is there a way to use FASM to do like bypasses?
I'm currently playing on a game and I know it blocks 3rd party programs such as macro programs ( AutoIt AcTool ect...) but I was told that it can be bypassed and you can use an assembly program to bypass it. However, I'm new to FASM because in the past all that was required was for me to do a simple Patch through my CE(Cheat Engine) on the address Using Assembly Function from CE.
Example:

Code:
[Enable]
00446FAB:
db eb 6f

[Disable]
00446FAB:
db 7b 6f
    


So I could simply patch / modify the Address and change it accordingly, so I'm trying to figure out is there a way i can make an asm with FASM that can Modify the address or bypass the protection that prevents 3rd party programs such as AutoIt to allow me to use them again?

In advance if this is the wrong section or Its posted somewhere else and I didn't see it then im sorry.

Thanks
Post 21 Oct 2009, 16:39
View user's profile Send private message MSN Messenger Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17714
Location: In your JS exploiting you and your system
revolution
Perhaps the easiest way for you is to use a hex editor or debugger to modify the .exe/.dll files.

Have a look at ollydbg. You can patch programs and save the patched .exe back to disk. The hard part is not the patching, it is finding the addresses to modify and which values to put.
Post 21 Oct 2009, 16:54
View user's profile Send private message Visit poster's website Reply with quote
r22



Joined: 27 Dec 2004
Posts: 805
r22
Instead of trying to hack the game, you could create your own "macro" program that may not be detected by the game. But you seem to be asking about modifying the game's memory which isn't a problem unless the game has an anti-cheating piece of software with it like "punk buster" or "VAC".

If you're not experienced in writing ASM then jumping into a project like this will be very difficult / impossible.

Also there are a couple of threads on this board related to "bypasses" try searching for "api hook" or "detours".

And finally, cheaters never win Very Happy
Post 21 Oct 2009, 20:03
View user's profile Send private message AIM Address Yahoo Messenger Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak
Quote:
And finally, cheaters never win


When it's against the computer and not a person (a good programmer will usually ensure this to the best of their abilities), is it really cheating, or is it making alternatives? As Admiral Spock says, "There are always alternatives."
Post 22 Oct 2009, 00:19
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
Black0ne



Joined: 21 Oct 2009
Posts: 9
Black0ne
Thanks for the quick replies since This is the first forum that I have posted a question and then left for weeks with no answer then to find some arrogant post. I'll give some more detail

1. the Game is called TwelveSky2 ( MMORPG )
2. The Anti-Hack Security System is X-Trap
( As far as I can tell X-Trap Pink 2009 2989 ) Know one has been able to figure it out, at least not anyone willing to help guide you into learning.

Interested about making my own macro Although I'm new and very basic with ASM as I am currently Learning, the most Iv done with asm is bypassing the Administrative Rights in the MS-DOS at school to get into some of the files I needed. However, If its not a long long process maybe i can try Google " Make Macro " as I have in other forums asked if it was possible to make a program like AutoIt or take a compiled .exe version of the script and change the Signatures or something to make it undetectable. Because I'm told that XTrap basically blocks out Virtual Keystrokes thus preventing AutoIt. However I tried down-patching the game and i get d/c because I'm told that the Pinky Version of XTrap has something called a Heartbeat, which since my client doesn't have the xtrap in the older version it returns null() and crashes.


Iv used detour Hook in the past with VS2003 for another game however, I'm not sure how to further this.

Any ideas? Making my own Macro program or Bypassing? I can upload some of the files or try to get som1s msn on the forums here and Show them what I'm trying to do threw Remote Assistance or something.
Post 23 Oct 2009, 02:42
View user's profile Send private message MSN Messenger Reply with quote
r22



Joined: 27 Dec 2004
Posts: 805
r22
-You can't bypass something if you don't know how it works.
Since you don't know how the anti-cheating program works you'd have to decompile it or analyze it in memory. For this you'd need knowledge of ASM and decompilers like ollydbg, ida pro etc etc.

One option would be to make a custom Keyboard Driver and install it on your machine. The driver would have your macro code in it, and because it runs at a system level it would bypass whatever means the anti-cheat program uses to block keystrokes.
BUT you'd need to be a fairly adept at programming to create a customized keyboard driver (this would NOT need to be written in ASM, c/c++ would work just fine). You'd probably need the windows DDK (driver development kit), it might have a keyboard driver sample in it.

Finally, you probably won't find anyone willing to walk you through this step by step because this would be a huge time commitment with arguably no positive gain. I say that because you don't seem to want to learn assembly; you just want a means to cheat at your video game.
Post 23 Oct 2009, 03:46
View user's profile Send private message AIM Address Yahoo Messenger Reply with quote
Black0ne



Joined: 21 Oct 2009
Posts: 9
Black0ne
my Goal is to learn asm fully, I simply use the Video Game Im currently playing as incentive to start learning, I've been going through page after page on learning assembly and most of what I find is completely irrelevant to what im trying to learn, as far as guides go, all of the guides are the same thing they show some type of example with what they explain but those examples assume that you already know how they work. or the tutorials for learning are simply based on bypassing a game system. I haven't found a place that teaches you asm fully. its all based on bypassing or fixing some type of issue. So there hasn't been much of a chance to learn the language enough to figure any of this out or to learn the language. which is my goal but everything I keep finding is based on Game Security Bypassing, so likewise I made this post based on a Bypassing XTrap since all examples seem to be on that topic. so hopefully I could relate the answers to what I've already seen. But if there is a good place to learn the language then please post it.

Also, I've used IDA Pro I have the paid version on my PC As I've used it when I started to learn detouring with c++, as far as asm goes It was only used for the Detour Method in c++, Which doesn't help me now since even if i could detour I have no clue what to detour. IDA shows the function and its bytes, Thus you can detour at the beginning of the function, redirect the function with your own, execute your work in its place.
Post 23 Oct 2009, 15:07
View user's profile Send private message MSN Messenger Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17714
Location: In your JS exploiting you and your system
revolution
Black0ne: Have a look at the examples folder in the fasm download and also the examples on the fasm website. I think those would be more suited to learning about asm.
Post 23 Oct 2009, 15:56
View user's profile Send private message Visit poster's website Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak
IMO, nothing out there so far readies you for asm. It's one of my criticisms of fasm, because it doesn't have a grounds up tutorial for getting started (neither does anyone else). However no one out there is really working to improve fasm in that regard. Everything out there already assumes you know either assembly or another programming language.

Making extra levels for a game was my incentive to learn C++, actually, but i never got to because the documentation was only the source code for the existing levels.

It may seem hard at first, but really you'll learn asm best from using it on unrelated projects. Asm's quite easy to learn. Just learn the ALU stuff to start, for the most part, you have an abbreviated operation (mov for move for example) then a destination for the result of the operation (also often used in the operation like with add) then a comma then the source.

Take for example the following code:

Code:
mov ax, 2
add ax, ax ;add ax to itself then store the result
;AX should now hold the value of 4.
mov bx, ax
add ax, bx
;AX should now hold 8, while BX now still only holds 4.
    


Most instructions are that way. Make sense?
Post 24 Oct 2009, 01:02
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
windwakr



Joined: 30 Jun 2004
Posts: 827
Location: Michigan, USA
windwakr
Always keep a set of the Intel instruction set references handy for when you spot an instruction you don't understand:
A-M
N-Z

From this page.



Also, you can learn all the basics of assembly from a lot of tutorials. For the basic stuff(registers, instructions, data, etc.), it doesn't matter what assembler it was made for. But for FASM's exact syntax and stuff, read the manual, download examples from the examples section, and browse the forums.


It would be nice if we could get someone who is good at teaching through writing to write a starter tutorial made just for FASM. One that is made for people with absolutely no programming experience.

_________________
----> * <---- My star, won HERE
Post 24 Oct 2009, 01:20
View user's profile Send private message Reply with quote
bitshifter



Joined: 04 Dec 2007
Posts: 764
Location: Massachusetts, USA
bitshifter
I think a noob should be sitting there while the tutorial is made.
You would be surprised what a seasoned coder takes as common knowledge.
Post 24 Oct 2009, 01:29
View user's profile Send private message Reply with quote
kohlrak



Joined: 21 Jul 2006
Posts: 1421
Location: Uncle Sam's Pad
kohlrak
let's not forget what professors takes as too complicated for even a seasoned coder...
Post 24 Oct 2009, 01:40
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger Reply with quote
Black0ne



Joined: 21 Oct 2009
Posts: 9
Black0ne
Thanks for the posts and I'm currently still looking for tutorials to learn and as it was said ~99.5% of all the guides and programs are based on the assumption you already know the language, and knowing very basics of it means even looking at the examples and stuff still makes no sense.

For Example Lets say I want to do some type of Hack / bypass on Pinball.exe ( Pinball) from Windows. How could I make an ASM file that would Say Increase the number of Balls ( turns ) I get instead of just 3 balls I can make it say 5 or 10? I know with Cheat Engine I can simply Find the address and increase the value. but with FASM. can anyone tell me how That could be accomplished? because to me that seems like the type of stuff that will get me to learn more and more. but atm I cant even apply anything i happen to learn because I don't have anything to tie it to. AS I can continue to make more and more changes to the Game until I find something new to move on to. while learning more and more ASM. I've done Detouring with c++ but thats different.
Post 24 Oct 2009, 08:15
View user's profile Send private message MSN Messenger Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17714
Location: In your JS exploiting you and your system
revolution
Black0ne: Your question does not really make sense. You can't use fasm to increase the number of balls in Pinball.exe. It doesn't work like that. Like I said in my first post above, the patching is easy, you can write one proggy to patch another proggy, no problem. The hard part is knowing which bytes to patch and which values to put there. fasm can't so the hard part, only a human with a decompiler/debugger/disassembler/own-brain can do the hard part.

Perhaps you have the wrong idea about assembly? Assembly is just another way of programming a computer, like C or Basic etc. Unfortunately assembly is it not some magic sauce that can automatically alter the play sequence of a game. C and Basic can also be used to write patch programs, no problem. Using assembly is not going to give you any extra functionality, it only gives you closer control over which instructions the CPU executes.
Post 24 Oct 2009, 08:29
View user's profile Send private message Visit poster's website Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo
I think you may be biting off more than you can chew. Making a cheat for a Windows game is something that sounds incredibly hard. It's not wrong to have a goal or ideas what you want to do, but it's best not to impose such a heavy burden that you give up in frustration and avoid asm just because of it.
Post 24 Oct 2009, 17:05
View user's profile Send private message Visit poster's website Reply with quote
Black0ne



Joined: 21 Oct 2009
Posts: 9
Black0ne
well here is the thing I can use Cheat Engine Find the exact address and make an Assembly Script that instead of sub the value I can modify it to add, which takes like 2 seconds to do, so i know how to find the address that requires being modified to make my change but im wondering with that knowledge how do i use FASM to make my change.

here is my example for my game before the anti-security program came up

This is for Godmode

Code:
[Enable]
00446FAB:
db eb 6f
[Disable]
00446FAB:
db 7b 6f
    


I change the address to instead of JNP to JMP, so it will skip over the collision code and thus, I never receive dmg. but im wondering if i wanted to do that exact same thing in FASM, can I?... Can i somehow attach or point to the Game I want to modify then Make that Change, or make it simply patch it JMP. I know how to do these changes on Cheat Engine and through RAMODBG ( Bypass TheMilda debugger block )
and through AutoIt. but I dont know if its possible to do that type of stuff with ASM?, if it isnt then I dont really see what the purpose in FASM would be if it can only compile codes that do nothing.
Post 24 Oct 2009, 20:42
View user's profile Send private message MSN Messenger Reply with quote
windwakr



Joined: 30 Jun 2004
Posts: 827
Location: Michigan, USA
windwakr
These are for TASM, but should still be of use.

The first three things on this page.
http://win32assembly.online.fr/tutorials.html

Mainly check out the third one, "_masta_'s Win32Asm Tut 2", it has some code for a basic trainer for Starcraft. But that could be modified to suit whatever needs you have.

Also, I don't know anything about the game you plan on modifying, but you do know that most MMORPG's WILL catch cheating and ban the cheaters, right?

_________________
----> * <---- My star, won HERE
Post 24 Oct 2009, 21:11
View user's profile Send private message Reply with quote
bitshifter



Joined: 04 Dec 2007
Posts: 764
Location: Massachusetts, USA
bitshifter
FASM is an assembler, not an hex editor or debugger or anything else.
You can dissasemble it, tweak it, then reassemble it with FASM.
And why tweak someone elses game when you can write your own?
Post 24 Oct 2009, 21:15
View user's profile Send private message Reply with quote
ManOfSteel



Joined: 02 Feb 2005
Posts: 1155
ManOfSteel
Your entire "problem" seems to be the generic good/bad guy cracking scenario. If you already know the location to be patched and the desired value of that location, then why don't you just change it using a hex editor? Why bother coding a program to make the change? Am I missing something really obvious here or what?
Making a patch using fasm could be useful if, and only if, you intend to release it and allow other people to apply the patch easily without messing with the exe themselves.

Quote:
I dont really see what the purpose in FASM would be if it can only compile codes that do nothing

Huh? If some "l33ts" gave you the false idea that fasm (or any other assembler) is a crackers' tool that enables you to "somehow" bypass a software protection or cheat inside a game, then you should first read what an assembler is and what it's usually used for. And don't forget to share the link with them, they need it.
Post 24 Oct 2009, 21:31
View user's profile Send private message Reply with quote
Black0ne



Joined: 21 Oct 2009
Posts: 9
Black0ne
Quote:
Making a patch using fasm could be useful if, and only if, you intend to release it and allow other people to apply the patch easily without messing with the exe themselves.


That is what my purpose is, im trying to make patches for the game, so that I may release them so that those that cannot do it themselves have a way of fixing it.

I know the address, I know what to change but I dont no how to make a patch that will apply those changes to the program. Otherwise yes id just simply OllyDBG it and then problem is solved for me. but because I dont want my methods of finding the addresses and such to be passed around to everyone i help, i want to be able to use FASM to make a patch.exe that can be ran and had the changes applied. that is the main reason for my post, I just think I might of made my objective way too obscured. Bypassing XTrap I will have to learn ASM ( Which I'm in the proccess of learning ) to patch over or remove to work. HOWEVER, I do not want to have to go to the forums and say ok here is how you patch XTrap,

Open OllyDBG. Scan for This Address, Change it to xxxx Then Right Click, then Copy to Executable -> All Modifications. Save.

I don't want to hand a step by step of what is being done, because that will tell the Makers of the game how to patch what I'm doing and cause me to have to find it all over again, where as if i could simply release a patch.exe and encrypt it or something to prevent it from being easily read threw then I can still do my codes and help others without releasing my exact source / method.
Post 24 Oct 2009, 23:14
View user's profile Send private message MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.