[tut] Complete All Optional Objectives cheat for Assassin Creed Black Flag

Post here (make sure thread doesn't exist first) any type of tutorials: text, images, videos or oriented discussions on specific games. No online-related discussions/posts OR warez!
Post Reply
reverser69
Expert Cheater
Expert Cheater
Posts: 104
Joined: Wed Dec 27, 2017 2:40 pm
Reputation: 48

[tut] Complete All Optional Objectives cheat for Assassin Creed Black Flag

Post by reverser69 »

hi all
explanations provided here are my own speculations and could be wrong. also tried to make it newbie friendly.

so to begin our search we need a lead.
lets start with an objective that needs to be done several times and find that changing number. then find the accessing code to eventually find the deciding function.
Image



after scanning we find:
Image



by changing them we verify which affects the objective's completion.
Image



we try to find the accessing code:
Image



dump the running game and open the games exe in IDA pro and when analysis is done go to that function:
Image



let see what are these two offsets:
Image



now if we set the 0x40 to max value, optional objective will be completed. but the problem is that this function only handles objectives which must be done several times. meaning, objectives like "stay undetected" are not checked here.
so a way of looking at this is that the game is constantly checking for objectives completion.
so if we go back we can find the check for those other objectives. lets trace back:
Image


then:
Image


and then:
Image



here we cant find any object other than the previous one. so we go on with tracing back:
Image



step out of this function (by F7 key) and you'll reach:
Image


lets place a breakpoint and see if several structures are passed to this function or not.
press F9 several times and you'll see only two values within ESI. could this be our two optional objectives?
let do a quick check and NOP the "je" after the "test". you'll see the "kill guards from stalking zones" objective will be immediately completed but if you
complete the mission, you'll miss the "stay out of combat" objective even if you are not detected by guards. why is that?
turns out the "stay out of combat" objective internally check "is detected" condition. so by returning TRUE boolean we tell the game "we got detected".
we can find the "completed" or "condition met" flag and set only those we want. lets find them:
copy those two values into dissect data:
Image


we can see if we kill 3 guards from stalking zones the highlighted values of second column are changed and if we get detected the highlighted values of first column are changed.
if we restart the mission and get detected and reset the flags of first column and set the flags of second column without killing any guards, at the end of mission we will get 100% synchronization. so these are indeed correct flags.
now one solution is that we write a script that fetches these structures and lets us edit these flags. but we should edit flags before mission end for every mission.


there's a chance that the games uses some kind of logic in which it has to know if an objective is positive or negative i.e. it should or should be done.
are we lucky enough to have that flag within the structure?! lets get back to dissect data window and try spot any differences between two columns.

by seeing into different pointers i didn't find anything interesting except:
Image



we also find these too:
Image



they are the main suspects. lets hook the bool check code (the code i hooked above) and change each of these flags in turn.
we'll see that 0x54 flag indeed causes the mission to be seen as "should be done" and hooking will set every optional objective to "completed".


a simple patch could be done like:
stepping into the very call we used to get structures:
Image



and stepping till the end:
Image



here we can overwrite the test and use the space to set the 0x54 flag to 1.
so it will be:
Image



from now on, every optional objective will get completed soon as it is introduced.

also attached an AOB hook for it.
Attachments
AC black flag Complete All Optional Objectives cheat.CT
(2.51 KiB) Downloaded 28 times
Last edited by reverser69 on Sat Mar 16, 2024 10:49 pm, edited 5 times in total.

reverser69
Expert Cheater
Expert Cheater
Posts: 104
Joined: Wed Dec 27, 2017 2:40 pm
Reputation: 48

Re: [tut] Complete All Optional Objectives cheat for Assassin Creed Black Flag

Post by reverser69 »

so after testing it for some time, turned out that some minor objectives like eavesdrops are also accessed by this function and our hook breaks those objectives. but there are some ways to filter those objectives.
previous findings come to our aid:
Image


so by checking if objective description is null or not, we can tell if the current objective is really an optional objective or not. there is also 0x60 offset but i didn't test it. so a quick and dirty work around:
Image


updated the 1st post.

Post Reply

Who is online

Users browsing this forum: Bing [Bot]