📚 OpenRCE is preserved as a read-only archive. Launched at RECon Montreal in 2005. Registration and posting are disabled.








Flag: Tornado! Hurricane!

 Forums >>  Brainstorms - General  >>  TrickySigner v1.0

Topic created on: August 25, 2007 08:35 CDT by XackerX .

Hello
I wrote this program for making Peid and RDG and ... confused .
on the other words it adds a section to your exe files and change signature of file.

Download Link of TrickySigner v1.0

http://xackerx.persiangig.com/TrickySigner/TrickySigner.rar

  RolfRolles     August 25, 2007 16:00.41 CDT
On the subject of fooling packer detectors, skape's locreate can be used to do this in a pretty cool way.  Read that paper first, or the rest of this post isn't going to make any sense.  Here's an excerpt from an email that I sent him at the time:

"I spent a bit last night thinking about how to transmute arbitrary byte arrays into other byte arrays using relocations.

Imagine the relocation addend was 0x01000000; then we could generate a list of #(desired byte - starting byte) relocations at the addresses that we wanted to permute (address minus three because the 0x1 is the top byte).  If the addend was 0x01, we'd do the same thing but we'd also have to model the carry flag's effect on additions for all three higher bytes, which is irritating.

It turns out we can generate another simple addend, 0x80010000, by simply mapping the executable at 0x80000000 (and assuming the relocated address is 0x10000).  Then the process of applying multiple relocations to a dword looks like this:

0x80fe0000 + 0x80010000 = 0x00ff0000
0x00ff0000 + 0x80010000 = 0x81000000

Every time the addition on the third byte wraps, the result is an increase of 0x1 to the fourth byte.  For every addition unconditionally, the top bit on the fourth byte is flipped.

On the whole, then, the process of increasing the third byte in a dword increases the fourth by A+B, where:

A = 0x80 if the source and target bytes have different parity; 0 otherwise
B = 0x01 if the target is less than the source; 0 otherwise

Permuting a byte array is therefore straightforward:


for(i = 0; i < 5; ++i)
{
   // Generate #(DestByte[i] - SrcByte[i]) relocs at the address minus two
   // this may be zero, in which case we skip it
   GenerateRelocs( OepAddress + i - 2, DestByte[i] - SrcByte[i] );

   // model the effects on the next byte sequentially by adding A + B described above
   if(i != 4)
       SrcByte[i+1] += (((SrcByte[i] & 0x1) ^ (DestByte[i] & 0x1)) << 7) + (SrcByte[i] > DestByte[i]);
}


The worst case is N * 0xFF relocations for changing N bytes.  Note that we may spoil the sixth byte at packer EIP by 0x80, 0x81, or 0x0, but this is irrelevant.

So now we can replicate arbitrary packers' signatures and fool PEiD.

* Rip PEiD's signature database.  Select a random packer signature from it.
* Map executable at 0x80000000; safe on 32-bit non-/3GB systems.
* Create a new section, LoCreate.
* Copy the bytes from the signature to the beginning of that section.
* Work out what a jump from the packer EP to the OEP would look like (0xe9 ?? ?? 0xf? 0xff probably).
* Create a sequence of relocations that transmute the original packer entrypoint bytes into that jump, add them to the LoCreate section, and point the relocation data in the PE header to them.

Pretty silly ultimately, but I bet you could crash some AV engines' static scanners and irritate amateur reverse engineers with this."

  thierryzoller     August 26, 2007 09:04.10 CDT
Check FakeSigner :
http://fakesigner.dotfix.net/
- Improved polymorph engine;
- Improved "stolen bytes" engine;
- New signatures (in detection mode);
- Entry point redirection to 1st section of EXE file (only in "stolen bytes" mode).

  XackerX     August 26, 2007 09:53.36 CDT
Ok . It's not First or Best . just 1 of them

  thierryzoller     August 26, 2007 09:58.34 CDT
No offence intented :) Thank you for sharing

Note: Registration is required to post to the forums.

There are 31,328 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06
Question about memor...
Dec/12


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit