-
Notifications
You must be signed in to change notification settings - Fork 6.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Two compiled binary files with exactly same assembly code behaves differently while cracking binary file ? Or may be i am missing something? #1998
Comments
Dup of #19. You can use PR #1505 by @astrelsky. |
Can you please help me with that ? |
You don’t have to merge the changes from PR, you can use the script.
|
Thanku for that but it still not working as expected i think i am missing something may be there is something that is not visible in c/c++ decompiled .c files. i used that |
Is may way of detecting patch correct ? |
Reimport the patched file again and find correct patched bytes. If changes is very small, than you can use binary diff utilities: |
i am curious to learn cracking or reverse engineering ! But i don't find any really useful tutorials or guidance ! |
I suggest you "Reverse Engineering for Beginners" book. |
Thanku! thats GREAT ! |
You can also compare the two files with the version tracking included with Ghidra. It is meant to compare two closely related binary versions. |
I am trying but it takes too much time to Adding 1241255 match objects... and i noticed that it just using 20% of CPU. |
I tried version tracking but i observe that there is only one function Even i tried this But shows no difference at all. |
I have two exe files one is original file and another one is cracked exe file of software Vector magic and cracked file is vmbe.zip
Both files have exactly same size.
I am using ghidra to decompile those binary files
Then i just export those files to format c/c++ program by just using option File->Export Program (O)
then i open those files into Visual studio and apply Diff extention to find difference between those files and i can navigate to differences by just pressing ALT+F5
Then i observed that some functions just failed to decompiled showing following error but i just search those functions in Ghidra by using Windows->Functions and again i decompiled those functions one by one and then put those functions into overall .c file at appropriate positions.
Now i have two .c files one is decompiled version of original exe file and another one is of cracked exe file
and after fixing fewer variables names we can easily find that there is only one difference between those two files at the end of function
FUN_0043a620
Original exe's decompiled .c file
Cracked exe's decompiled .c file
And in Ghidra we can see there is just one assembly instruction is changed at Memory location `0043a687`
Original file
Cracked file
Now i changed that instruction in original exe file and just export binary file from option File->Export Program (O)
Then i try my version of cracked binary file by just replacing ogrinal file with my cracked file and it just don't work but when i try cracked file it work like a charm.
And this patch is just looks like a correct solution because this is the function that decides weather the software is registered or not by just observing returned value and we just make it to always
return 1
. We can search uses of that functionFUN_0043a620
in decomplied .c fileFor example
And
That exacly what i was discovered even before looking at cracked binary and i tried it but it did not worked then i find this cracked file tried to understand differences between working cracked binary vs original binary.
I want to know why my cracked version not working even i copied exact changed assembly instruction from working cracked file ?
The text was updated successfully, but these errors were encountered: