首页
社区
课程
招聘
CreateProcessA――试试这个Bit-Arts壳
发表于: 2004-7-16 00:53 6861

CreateProcessA――试试这个Bit-Arts壳

fly 活跃值
85
2004-7-16 00:53
6861
      

PEiD侦壳:
Crunch/PE Heuristic -> Bit-Arts [Overlay]

下载地址:
http://www.chez.com/jls/MFVDasm/MFVDasm.exe

程序大小:1.2M
下载速度有点慢,各位耐心点。

程序简介:
Full support for Visual C++ 6 Delay-load imports. Available as an option;
Built-in symbols for MFC42 standard DLLs : MFC42.DLL, MFC42D.DLL, MFC42U.DLL, MFC42UD.DLL, MFCO42D.DLL, MFCO42UD.DLL, MFCD42D.DLL, MFCD42UD.DLL, MFCN42D.DLL, MFCN42UD.DLL
and Borland CBuilder v5 BFC42.DLL/BFC42D.DLL;
New alternate symbol engine : DBGHELP now available as a redistribuable DLL and included with Windows2K.
C++ symbols are undecorated, optionally with parameters or full;
New option : Assume no export aliases. This is because somes DLLs include several exports for one same address;

这个壳运行的速度比较慢,使用了CreateProcessA等手段
有兴趣的兄弟看看吧

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 2
支持
分享
最新回复 (5)
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
呵呵,有意思。
这是一个新壳吗,我正玩的一个软件就是这个加密了,我已经脱了它的壳,但软件的注册码难证采用的就是这个的。比较烦了。

说说此壳的信息呗!
2004-7-16 07:04
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
是一个老壳
速度方面不敢恭维
2004-7-16 12:42
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
国外大虾的文章

Target: MFVdasm hxxp://redirect.to/MFVDasm Packed by Softlocx
Tools: IDA pro, Softice, dumpbin, regmon, filemon
Difficulty: intermediate

Initial analysis of the target yeilds the following findings:

1. The executable is packed by Softlocx and decompresses an executable
image insNNN.tmp in SYSTEM\TMP directory. The user registration is
handled by this executable which itself is packed by softlocx
protection by examing its source listing (around 244kB). The unpacker
uses unaligned jmp to fool disassembler but IDA was able to correctly
identify these commonly used techniques:

jmp near $+6
0xE9 <--- false MOV EAX, 4_bytes_after
push EBP <--- jmp destination
...

The unpacker allocates 2x3 pages of memory and does the unpacking, then
use rep movsb to 0x482c6 which is the next EIP address:

ebx = ebp+ (ds&4)? 17ac : 176f <-- a clever scheme is used to determine the base load address
<-- of this code entry point page address, i.e. ebp=0x00482000
<-- on w2k, the ds selector always ends up as 011y (gdt, ring3)
<-- so ebx = ebp+176f
call ebx
chunk1 = VirtualAlloc(0, 0x3000, MEM_COMMIT, PAGE_READWRITE)
eax = 1926+ebp
call eax
unpack(chunk1)
chunk2 = VirtualAlloc(0, 0x3000, MEM_COMMIT, PAGE_READWRITE)
size=unpack(chunk2, chunk1)

esi=chunk2
edi=0c6h <-- hardcoded
edi=edi+ebp
ecx=size
004820c4: rep movsb
004820c6: Start of self modifying code, dest of rep movsb from chunk2

An unpacker could be built based on the above analysis.

2. The installation image insNNN.tmp modify registry settings and
create a file called SYSTEM_ROOT\netdet.ini. This file is critical in
softlocx to determine if the protection scheme has been tempered with,
working together with the registry. After I manually edited the file
content, the software displays expired license even though it still
has 6 days left in demo mode (obviously I made bad changes to the
netdet.ini file). So it might be interesting to have a bpx CreateFile
if @@(esp+8)='...\netdet.ini', and examine the code flow afterwards.
filemon and regmon are highly recommended to examine insNNN.tmp IO and
registry activities.

3. The softlocx license manager displays a temporary license number
that changes with the number of days left. I haven't studied how these
two numbers relate to each other.

4. Now onto the key verification part, this part of code uses a few
tricks too. The key encoding data and a couple of pointers, [ebp-1c],
[ebp-2c], [ebp-28] are different in each softice session, even though
they seem to point to user_key, enc_key1, enc_key2. But there are a
few invariants. One invariant is the base pointer register ebp. It
always equals to 0012EAAC. If you examine the heaps insNNN uses,
0012XXXX is an additional process heap insNNN allocated. Another
invariant is in [ebp-3c] = 02f04b60, the 8 digit user registration
code. The encoding code segment can be tracked down by bpm 02f04b60
and is around 00415459 on my computer. There is one global variable
that maybe related to softice presence 2 levels down to the key
encoding subroutine.

Following the encoding subroutine, a seemingly simple key verification
routine takes user_key (4 digit) and enc_key1 and makes a comparison.

compare_keys(user_key, enc_key1, 8)
if(eax != 0) goto out_bad
do_somemore_encoding_comparison, goto out_bad whenver possible
compare_keys(user_key, enc_key2, 8)
do_somemore_encoding_comparison, goto out_bad whenver possible

It seems strange why user_key is only first half of the key but the
compare_keys subroutine actually compares 8 bytes from both
address. What is even more strange is that the enc_key1 and enc_key2
almost always ends up different and contains alphabatics. A little
more on the encoding part, the insNNN keeps a couple encoding magic
number arrays around [ebp-24], and an index shift array around
[ebp-60]. These arrays are used to produce enc_key1, and enc_key2,
both are 4 bytes long. I haven't figured out a way to even produce
numeric only enc_keys.

5. The "thanks for registration" message is kept at 0044D7b8
(invariant?), and is referenced at 0044e4c7 (by s 0 L -1 b8,d7,44,00).
Backtracing to this address may be impossible because the program is
in a constant state of self-modifying.
2004-7-16 14:14
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
多谢,我脱壳时偷了一下懒了。
是给VB程序加的壳,我找到thunmain那个点,之后lord,import,但有函数错误。不知兄弟能给点意见不?

软件的注册验证采用的也是softlock的ocx文件,算法烦死了,一个位的处理花了好长时间,浪费了。
程序的注册算法我分析一遍用了近4个小时,也是兄弟水平不行了,呵呵。

bTw:不知道兄弟可否知道 delphi 算2的n次方如何算。
我在调试程序时竟发现用
al=2
dx计数

004FC650  PUSH EBX
004FC651  MOV CX,1
004FC655  AND EDX,0FF
004FC65B  TEST DX,DX
004FC65E  JBE SHORT KDWHL.004FC66F
004FC660  /XOR EBX,EBX                          ;  2的n次方
004FC662  |MOV BL,AL
004FC664  |IMUL BX,CX
004FC668  |MOV ECX,EBX
004FC66A  |DEC DX
004FC66D  \JNZ SHORT KDWHL.004FC660
004FC66F  MOV EAX,ECX
004FC671  POP EBX
004FC672  RETN
呵呵,用
mov eax,1  
shl eax,n
不好吗 -当然了,此法不能超过32位了。
2004-7-16 22:29
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
nig 兄搞定脱壳后写个教程吧
2004-7-16 23:41
0
游客
登录 | 注册 方可回帖
返回
//