From 44800d5e6d39e23f0deb2f6d54c3eb75047bece8 Mon Sep 17 00:00:00 2001 From: JuliaPoo Date: Wed, 7 Apr 2021 23:39:41 +0800 Subject: [PATCH] Populated README.md Signed-off-by: JuliaPoo --- BadApple/BadApple.vcxproj | 4 +- README.md | 108 ++++++++++++++++++++++++++++++++++++++ images/preview.png | Bin 0 -> 55539 bytes 3 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 images/preview.png diff --git a/BadApple/BadApple.vcxproj b/BadApple/BadApple.vcxproj index c26cd1e..44765cb 100644 --- a/BadApple/BadApple.vcxproj +++ b/BadApple/BadApple.vcxproj @@ -23,7 +23,7 @@ Win32Proj {7242ec77-902f-4ef3-bfa6-b29d1fb32166} BadApple - 10.0 + 10.0.18362.0 @@ -35,7 +35,7 @@ Application false - v142 + v141 true Unicode diff --git a/README.md b/README.md index e69de29..6f40e91 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,108 @@ +# Bad Apple on IDA + +![Preview](./images/preview.png) + +Writing a program that modifies itself in runtime to play Bad Apple using it's control flow graph. See the [full video here](https://www.youtube.com/watch?v=Tvmj6hOny8w)! + +## Okay Why? + +Wrong question. It's why not? + +## How it's done + +### Displaying the Screen + +All the hardwork for how to display basic blocks in IDA such that it aligns as a nice grid is done by [REpsych by xoreaxeaxeax](https://github.com/xoreaxeaxeax/REpsych). Do check him out he has some awesome stuff! + +But basically, each column is a case in a jump table, which IDA loves to align. Each _pixel_ is a basic block with a really really long instruction `vfmaddsub132ps xmm0, xmm1, xmmword ptr cs:[edi+esi*4+]` to maintain the block's width, and its height, aka brightness, is controlled via the number of `nop`s in the block. + +A block hence looks something like this: + +```asm +vfmaddsub132ps xmm0, xmm1, xmmword ptr cs:[edi+esi*4+] +nop +nop +nop +... +nop +nop +nop +jmp next_block +``` + +Furthermore, at the first ever block (before the jump table), there's an `int 3` instruction that breaks the debugger (to signify a frame), and instructions that zero out `edi`, `esi` and `eax`. Control flow through the image hence goes to the first case/column, and executes without error. + +I essentially rewrote the displaying parts of _REpsych_ in _C_ because I have (unfounded) personal grudges towards _nasm_. + +### Changing Pixel Brightness + +Right so apparently if IDA detects a bunch of `0xCC` bytes, it won't disassemble it by default. I'm guessing it's because `0xCC` is often used for padding? Meh didn't bother to look that up. + +ANYWAYS, to change a pixel brightness, we just have to make the basic block smaller by removing a number of `nop`s. Then we have to patch the `jmp` to properly jump to the next block. To stop IDA from displaying anything other than the new pixel, the rest of the space is filled with `0xCC`. This is fairly easy to do in code. + +```C +// In image_utils.cpp +size_t loc = pixel_start + PIXEL_SIZE * (x * HEIGHT + y) + LONG_INST_SIZE; + +for (int j = 0; j < PIXEL_SIZE - LONG_INST_SIZE; ++j) + ((char*)(loc + j))[0] = 0xCC; +for (int j = 0; j < val; ++j) + ((char*)(loc + j))[0] = 0x90; + +int addr = old_jmps[x][y]; +((char*)loc + val)[0] = 0xE9; +((size_t*)(loc + val + 1))[0] = addr + BLOCK_SIZE - val; +``` + +### Displaying the next Frame + +Well, just change all the pixels you need and call the `image` function to trigger the breakpoint again. + +```C +// In main.cpp +for (int j = 0; j < n_frames; ++j) { + next_frame(); + image(); +} +``` + +### Playing Bad Apple + +I think I spent more time writing the script to capture every frame on IDA than on the actual binary. + +The problem is that IDA is _not_ meant to deal with self modifying code. After modifying the image, the graph is completely messed up. I haven't found an easier solution but to capture each frame, I had IDA run until it reaches the `int 3` instruction, and then I reanalyse _the entire program_ to refresh the graph view properly. + +There's _probably_ a better solution for this but I didn't look that hard. I'm not gonna sit in front of my screen repeating that for every frame (3284 times!) so I wrote a [script](./RPA/rpa.py). + +Anyways the script ran for 13 hours, reanalysing my poor binary 3284 times. + +## Recreating the Video + +If you are deranged enough to use this repository you're in the right section. I made almost no effort in making this portable. This is one time use code. + +### Building `BadApple.exe` + +Navigate to [./BadApple/gen/](./BadApple/gen/) and run `python gen.py`. The script will helpfully ask for the height and width of the screen you want, and the video file. The script halfs the frames of the video file for the sake of sanity. In my [video](https://www.youtube.com/watch?v=Tvmj6hOny8w) I used `27, 18, ./rsrc/BadApple.mp4`. This will generate the files [image.cpp](./BadApple/gen/image.cpp), [movie.cpp](./BadApple/gen/image.cpp) and [image.h](./BadApple/gen/image.cpp). + +Then go ahead and open [BadApple.sln](./BadApple.sln) in Visual Studio 2017 (you can probably retarget but I didn't test it). + +Then build in, **VERY IMPORTANT**, `x86 Release/Debug`. + +### Creating the Video + +Open `BadApple.exe` in IDA and run it. IDA will say it hit a breakpoint. Remove that message, clean up your screen and whatever, and run [rpa.py](./RPA/rpa.py). (Extremely fragile script, use with discretion). + +This should populate the folder [RPA/out](./RPA/out) with Bad Apple frames in _only_ a matter of a few hours. + +Next run [combine.py](./RPA/combine.py) to generate the final video. (Alse An Extremely Fragile Script. The MIT License does not hold me liable to any damage caused from using my scripts). + +## Credits Due + +First off, [xoreaxeaxeax](https://github.com/xoreaxeaxeax/REpsych) for the absolute genius idea of drawing pictures on IDA. + +AND the TouHou community for the [original Bad Apple video](https://www.youtube.com/watch?v=FtutLA63Cp8) + +## Bye + +Cheers! + diff --git a/images/preview.png b/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..b7099aa609edc303ec9304fba72ce8379c5dc6e4 GIT binary patch literal 55539 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

vs4A}1&P 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 I;`<-}11s~?K>z>% literal 0 HcmV?d00001