Hot answers tagged

3

Following quote comes from unix.stackexchange: To patch a file means to modify it, with the connotation that the modification is generally small. So, patching the executable is a process of changing its content usually performed for changing its original behaviour. Patching is obviously not allowed means that the author of a particular crackme wants you ...


3

A solution working in Windows was given in my question - this way, you can cause program to continue after it receives SIGSEGV. You can do similar thing on linux (though I would recommend using sigaction instead of signal which is deprecated (see link)). That is, register signal handler for this signal and cause it whichever way you prefer to - execution ...


3

Yes, they are initialized, albeit indirectly. Have a look at this fragment: 0x00401189 488d45fb lea rax, qword [local_5h] 0x0040118d be05000000 mov esi, 5 0x00401192 4889c7 mov rdi, rax 0x00401195 e8c6feffff call sym.imp.fgets ; char *fgets(char *s, int size, FILE *stream) Here we're calling the fgets ...


2

Printing the registry values in radare2 is quite simple. All registers You can print all the General Purpose registers using dr: [0x55bea3305070]> dr rax = 0x55bea3305070 rbx = 0x00000000 rcx = 0x7fd7ee4f7578 rdx = 0x7ffd63b54428 r8 = 0x7fd7ee4f8be0 r9 = 0x7fd7ee4f8be0 r10 = 0x00000001 r11 = 0x00000000 r12 = 0x55bea3306ae0 r13 = 0x7ffd63b54410 r14 = ...


2

I had some trouble really understanding your question so I'll try to answer this question as best as I can. When you use pdf you instruct radare2 to print the disassembly of the whole function. Where each function begins and ends is identified when analysis is done (aaa). So if you don't have functions identified pdf won't work. You run your analysis so ...


2

An excellent reference (probably the best one) that can be consulted for this type of problem is The Linux Programming Interface, which includes 3 full chapters on the topic of signals: Signals: Fundamental Concepts Signals: Signal Handlers Signals: Advanced features These chapters include example code as well as diagrams and clear explanations. (A free ...


2

TL;DR: (probably) No :( I'm afraid I don't think there is some site like this, mainly because it is much harder to generate minimal example games for memory manipulation which resemble a real life scenario than in reverse engineering or debugging challenges. Games are often quiet complex and feature multi threaded gameloops and complex engines which keep ...


2

use print &text or use info locals :\>dir /b & type cin.cpp & g++ -g cin.cpp & echo ========= & gdb -q a.exe cin.cpp #include <iostream> #include <string> using namespace std; int main (void) { string text; getline(cin,text); }========= Reading symbols from a.exe...done. (gdb) break main Breakpoint 1 at ...


1

I wrote a function, that generates a valid input from given generatedData and finalCorrectSerial. The function calculates a subset that, when summed up, equals the corresponding value in finalCorrectSerial. It then creates a valid input from that. (The function subsetSum() is taken from here and was modified to return just one subset and that by it's indices)...


1

I recreated your binary and then used Radare to corrupt the header exactly as you did, changing the number of section headers to 52. r2 -w a.out -1c's 0; pfo elf64; .pf.elf_header.shnum=52' This only generated a warning with subsequent invocations of readelf. $ readelf -h a.out ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 ...


1

Your best "crack-mes" for games are games themselves! If spending money on games is a barrier to entry you'd rather not venture, then consider the following: Demo/trial/free-to-play games on Steam. These are all freely available for you to download and work with. There are filters you can toggle to search for these types of games on Steam, so it's easy to ...


Only top voted, non community-wiki answers of a minimum length are eligible