项目作者: GeoSn0w

项目描述 :
A patcher written for the Unicorn Crack-Me
高级语言: C
项目地址: git://github.com/GeoSn0w/Unicorn-Crack-Me-Patcher.git
创建时间: 2018-05-20T19:46:45Z
项目社区:https://github.com/GeoSn0w/Unicorn-Crack-Me-Patcher

开源协议:MIT License

下载


Unicorn-Crack-Me-Patcher

A patcher wrote for the Unicorn Crack-Me

I was bored and I decided to write a patcher for the Unicorn Crack-Me from https://reverse.put.as/wp-content/uploads/2010/05/2-Unicorn.zip

Normally, I’d bother to reverse engineer the key generation (MD5-based in this case), but I found it less time-consuming to simply patch the instructions that deal with the verification.

Normally the instructions that decide whether you get the “Wrong serial” message are in the “validate” method:

  1. ...
  2. 00002b41 test al, al
  3. 00002b43 jnz 0x2b6e ; Here's the conditional jump based on the previous comparison
  4. 00002b45 mov dword [ss:esp+0x10], 0x0 ; The afore "JNZ" isn't executed so we go here and here's the Fail case
  5. 00002b4d mov dword [ss:esp+0xc], 0x0
  6. 00002b55 mov dword [ss:esp+0x8], 0x3054 ; @"Try again"
  7. 00002b5d mov dword [ss:esp+0x4], 0x3064 ; @"The serial is not valid."
  8. 00002b65 mov dword [ss:esp], 0x3074 ; @"Error!"
  9. 00002b6c jmp 0x2b95
  10. 00002b6e mov dword [ss:esp+0x10], 0x0 ; We're on the good scenario theritory
  11. ...
  12. 00002b76 mov dword [ss:esp+0xc], 0x0
  13. imp___symbol_stub__NSRunAlertPanel
  14. 00002b7e mov dword [ss:esp+0x8], 0x3084 ; @"OK"
  15. imp___symbol_stub__NSRunAlertPanel
  16. 00002b86 mov dword [ss:esp+0x4], 0x3094 ; @"The serial is valid."
  17. imp___symbol_stub__NSRunAlertPanel
  18. 00002b8e mov dword [ss:esp], 0x30a4

All we have to do is to pretty much change the JNZ instruction, which is a conditional jump, to a JMP which will always jump regardless of the test al,al.
All the rest of the program is arhitecture detection, structures in the FAT Mach-O and verbose stuff.

Contact me

Twitter: GeoSn0w (@FCE365)
WWW: https://idevicecentral.com