种好心田自有收!

脱壳中的附加数据问题(overlay)

上一篇 / 下一篇  2008-03-11 08:47:47 / 个人分类:实训项目

看了Lenus刚写的《浅谈脱壳中的附加数据问题(overlay)》一文,大呼过瘾,概念明晰,结构清爽!
7a)t xX9r0正好看到论坛里有人给了东西,我就拿来自学了:)
d Zd^u!D0个人博客---梅州教育城域网R8y|x-o:i)q[
 peid ->ASPack 2.12 -> Alexey Solodovnikov [重叠]个人博客---梅州教育城域网2Ji cw#P;y/c
个人博客---梅州教育城域网Tf4VQ m#II@
怎么脱壳和文章无关,stripper或修api都可以的个人博客---梅州教育城域网 Q]!yAL0Nm

$] H8|-G._0运行脱壳后的东西,弹出搭建之星的对话框,说明原有的尾部数据没有被正确读入,要修正的!个人博客---梅州教育城域网%LfAt2Im:K[
个人博客---梅州教育城域网l(p3du-Q6G
理论部分可以看《浅弹》,我写就有点垃圾了,可以跳过不看:)
:`!B.@1^Ni)Cdt000616070     8B45 F8              mov eax,dword ptr ss:[ebp-8]个人博客---梅州教育城域网{4[$yT$O7G
00616073     BA B0616100          mov edx,fsbwg21.006161B0       ; ASCII "FSJM IPD W32"个人博客---梅州教育城域网8p)r%K8O(tY;eB+w
00616078     E8 DBEDDEFF          call fsbwg21.00404E58个人博客---梅州教育城域网6il.\\[ M
0061607D     0F85 E4000000        jnz fsbwg21.00616167个人博客---梅州教育城域网y&z5I$S8y
00616083     8B03                 mov eax,dword ptr ds:[ebx]
+p `+t P KM f000616085     8B10                 mov edx,dword ptr ds:[eax]个人博客---梅州教育城域网3Y6_y/u x'c:c
00616087     FF12                 call dword ptr ds:[edx]个人博客---梅州教育城域网l&__|:B

){5^ [-SFB,j0ds:[0041CD34]=004218B4 (fsbwg21.004218B4)
]UX fF;N(G.bA0
C'KOFoC000616089     52                   push edx个人博客---梅州教育城域网vD.@9|oPB
0061608A     50                   push eax个人博客---梅州教育城域网^f{#n/ugx w
0061608B     8B06                 mov eax,dword ptr ds:[esi]
G_Q%]#|4L00061608D     99                   cdq个人博客---梅州教育城域网1`9nj ]m7^d iD5\3i
0061608E     290424               sub dword ptr ss:[esp],eax    个人博客---梅州教育城域网'Si Y z.V)W
个人博客---梅州教育城域网!i!ZQ"XH\
eax=0000000C
,[/W ~9p1v0Stack ss:[0012FF24]=000D267F
qQ)\j]y_br\-Lt2w0个人博客---梅州教育城域网-u1o^o D'W#l
00616091     195424 04            sbb dword ptr ss:[esp+4],edx个人博客---梅州教育城域网d SiA;v)y+g7y
00616095     58                   pop eax个人博客---梅州教育城域网5o4A:L w Uum
00616096     5A                   pop edx个人博客---梅州教育城域网 gW AS$W-Sc?6^
00616097     83E8 08              sub eax,8
F~)i9qOr-A00061609A     83DA 00              sbb edx,0
9Rh-tw l@B [00061609D     52                   push edx
7^&I+`3v cN&@D,x A00061609E     50                   push eax
4m]$b9C'\00061609F     8B03                 mov eax,dword ptr ds:[ebx]
5|U5]V-Xk8]\0006160A1     E8 FAB7E0FF          call fsbwg21.004218A0
p(W#vXB7uWTMG0个人博客---梅州教育城域网&X$_+y\?^3EQ
004218A0=fsbwg21.004218A0个人博客---梅州教育城域网/@f+KZ/l2G5x$c

x:`5[%yrd6u x(Ua0006160A6     8D55 F0              lea edx,dword ptr ss:[ebp-10]
3J m%i*[8f6@&t+e VRs0006160A9     8B03                 mov eax,dword ptr ds:[ebx]个人博客---梅州教育城域网 k6UTZEs T{ G"^
006160AB     B9 04000000          mov ecx,4个人博客---梅州教育城域网F`"rP}'h
006160B0     E8 F7B9E0FF          call fsbwg21.00421AAC个人博客---梅州教育城域网ac;WCN-OisO`Z
006160B5     8B45 F0              mov eax,dword ptr ss:[ebp-10]
A8oI[(zj0Stack ss:[0012FF58]=000D265A个人博客---梅州教育城域网$K_8S6E%\k,c
个人博客---梅州教育城域网(U7qV}fD
006160B8     99                   cdq
.gK%@,i@%i:rR0006160B9     52                   push edx
'H M [1Ugs7x8rIf#f0006160BA     50                   push eax个人博客---梅州教育城域网 ?ra[u1^
006160BB     8B03                 mov eax,dword ptr ds:[ebx]个人博客---梅州教育城域网*[ us-Ip
006160BD     E8 DEB7E0FF          call fsbwg21.004218A0个人博客---梅州教育城域网o9V(~M0b
006160C2     8BD6                 mov edx,esi个人博客---梅州教育城域网G mPwI6m
006160C4     8B03                 mov eax,dword ptr ds:[ebx]
:AP!w J;~+X2N9HE | @C0006160C6     B9 04000000          mov ecx,4个人博客---梅州教育城域网I5AoTh;n*G T
006160CB     E8 DCB9E0FF          call fsbwg21.00421AAC个人博客---梅州教育城域网:Z5F,?} Sa N
006160D0     8B06                 mov eax,dword ptr ds:[esi]
Sj\{(}/i3K2` A iK7v0006160D2     3B45 F0              cmp eax,dword ptr ss:[ebp-10]个人博客---梅州教育城域网3@U6I'Oj@? ` C
006160D5     74 37                je short fsbwg21.0061610E
Lg4}g1P0006160D7     8D45 F8              lea eax,dword ptr ss:[ebp-8]
lh;jS"|eA(FO9r&z0006160DA     8B16                 mov edx,dword ptr ds:[esi]
1]*Qy+r5g0006160DC     E8 B7EFDEFF          call fsbwg21.00405098
UXts3F3Aw!]o0006160E1     8B55 F8              mov edx,dword ptr ss:[ebp-8]
u ai:i AZx/H0006160E4     8B03                 mov eax,dword ptr ds:[ebx]个人博客---梅州教育城域网LG*aCq1r~#Dp,w
006160E6     8B0E                 mov ecx,dword ptr ds:[esi]个人博客---梅州教育城域网 ]'Q.d"qhR#g
006160E8     E8 BFB9E0FF          call fsbwg21.00421AAC
(NL0`0MW(n0006160ED     8BD6                 mov edx,esi个人博客---梅州教育城域网+wwWYd-BL R5Kd
006160EF     8B03                 mov eax,dword ptr ds:[ebx]
6j w&Sxm`$x(H*I0006160F1     B9 04000000          mov ecx,4
*ER aG:Q Q;nn?+J'~0006160F6     E8 B1B9E0FF          call fsbwg21.00421AAC
N&s9i(a9yL4D0006160FB     A1 342E6200          mov eax,dword ptr ds:[622E34]个人博客---梅州教育城域网 \'jY%P N!{m-e-d}}
00616100     8B00                 mov eax,dword ptr ds:[eax]个人博客---梅州教育城域网;f Beg*Gq7`-X j
00616102     8B0E                 mov ecx,dword ptr ds:[esi]
#dW$uy.qu9b2v000616104     8B55 F8              mov edx,dword ptr ss:[ebp-8]
8E4M ]7x@ {000616107     8B38                 mov edi,dword ptr ds:[eax]
.g$c4]}O000616109     FF57 3C              call dword ptr ds:[edi+3C]
b wVA r1u@00061610C   ^ EB B4                jmp short fsbwg21.006160C2个人博客---梅州教育城域网emL}:\9Y-D
0061610E     8D55 E4              lea edx,dword ptr ss:[ebp-1C]
%w,t)putH3H u000616111     A1 342D6200          mov eax,dword ptr ds:[622D34]个人博客---梅州教育城域网6M ZFnfGfa
00616116     8B00                 mov eax,dword ptr ds:[eax]
[MU7E:f q Wl000616118     E8 8B15E9FF          call fsbwg21.004A76A8
4Lv.zK.\(F.t$}&Rb00061611D     8B45 E4              mov eax,dword ptr ss:[ebp-1C]
h Tqfud$B000616120     8D55 E8              lea edx,dword ptr ss:[ebp-18]
@} s;_}S000616123     E8 4841DFFF          call fsbwg21.0040A270
s]+N f@0N000616128     8B55 E8              mov edx,dword ptr ss:[ebp-18]
n-c'{+}*V00061612B     A1 242B6200          mov eax,dword ptr ds:[622B24]个人博客---梅州教育城域网N:v$z5H'A2V
00616130     E8 6BE9DEFF          call fsbwg21.00404AA0
yMHqPnm,a000616135     8D4D DC              lea ecx,dword ptr ss:[ebp-24]个人博客---梅州教育城域网zwf&V9h:xl:c
00616138     A1 342E6200          mov eax,dword ptr ds:[622E34]个人博客---梅州教育城域网!T9hFt(S |;_#s+rM
0061613D     8B00                 mov eax,dword ptr ds:[eax]个人博客---梅州教育城域网[%t T*]0qqPPQ,`^
0061613F     33D2                 xor edx,edx个人博客---梅州教育城域网A0c"Sa]g*vA
00616141     8B18                 mov ebx,dword ptr ds:[eax]
2le^egZ_;R4d5_000616143     FF53 0C              call dword ptr ds:[ebx+C]
cy:m+rU000616146     8B55 DC              mov edx,dword ptr ss:[ebp-24]个人博客---梅州教育城域网{R^&X*M}AG
00616149     8D4D E0              lea ecx,dword ptr ss:[ebp-20]
{*[(fq]-n#rBe00061614C     A1 242B6200          mov eax,dword ptr ds:[622B24]个人博客---梅州教育城域网.x3d#Lk/`0q$i`:m
00616151     8B00                 mov eax,dword ptr ds:[eax]
+z5sj+UB"l|5}000616153     E8 740BEBFF          call fsbwg21.004C6CCC个人博客---梅州教育城域网'|kIq/H
00616158     8B55 E0              mov edx,dword ptr ss:[ebp-20]个人博客---梅州教育城域网/A(xU(VX,p
0061615B     8B45 FC              mov eax,dword ptr ss:[ebp-4]
*f!D5F6OJ|5X}00061615E     E8 3DE9DEFF          call fsbwg21.00404AA0
Q u*IF? Rb~G000616163     B3 01                mov bl,1个人博客---梅州教育城域网RRThY_-N
00616165     EB 0D                jmp short fsbwg21.00616174
&fm&m6H/x0uyX000616167     8B03                 mov eax,dword ptr ds:[ebx]
x |?g+VS,On000616169     E8 8EDADEFF          call fsbwg21.00403BFC
!k;c/S1X.ut4[-R00061616E     33C0                 xor eax,eax
kG#y~Vq*t&b000616170     8903                 mov dword ptr ds:[ebx],eax
RI2i;g?$c$|4A000616172     33DB                 xor ebx,ebx
F+Vp3{ AmkA000616174     33C0                 xor eax,eax个人博客---梅州教育城域网d|"[,SL*i ? X
00616176     5A                   pop edx
rd-D'JJj&A"~000616177     59                   pop ecx个人博客---梅州教育城域网"j,G)O1l4~aF"q
00616178     59                   pop ecx
)u Hab`000616179     64:8910              mov dword ptr fs:[eax],edx
Q'p|0}+Gqq00061617C     68 9E616100          push fsbwg21.0061619E个人博客---梅州教育城域网c\H1q5i6K%k
00616181     8D45 DC              lea eax,dword ptr ss:[ebp-24]个人博客---梅州教育城域网^.a6n6n.T7u4P
00616184     BA 05000000          mov edx,5
gkQ:@1xD'f ]000616189     E8 E2E8DEFF          call fsbwg21.00404A70个人博客---梅州教育城域网cPmVQjh5~?V
0061618E     8D45 F8              lea eax,dword ptr ss:[ebp-8]个人博客---梅州教育城域网2h5_s'du5X]
00616191     E8 B6E8DEFF          call fsbwg21.00404A4C
D&d#Y(g_mf000616196     C3                   retn个人博客---梅州教育城域网1^0y QGa(d$g
00616197   ^ E9 08E2DEFF          jmp fsbwg21.004043A4
4g^/{m!dbcz00061619C   ^ EB E3                jmp short fsbwg21.00616181个人博客---梅州教育城域网pzhb3J,sqo(t
0061619E     8BC3                 mov eax,ebx个人博客---梅州教育城域网@%Y0NL;Y;i8~6^K k
006161A0     5F                   pop edi
^mn*F)y5S0006161A1     5E                   pop esi个人博客---梅州教育城域网*M\?p^d5o
006161A2     5B                   pop ebx
#GqH L1wM0006161A3     8BE5                 mov esp,ebp个人博客---梅州教育城域网M3m8ldk"e7}C
006161A5     5D                   pop ebp个人博客---梅州教育城域网,g-I t8tEB%@
006161A6     C3                   retn
.FA5~&Nt,c @/htI;^0
nXQ'cH ^si3P0看api参考:个人博客---梅州教育城域网;u9[C:QP;M p
DWORD SetFilePointer( 个人博客---梅州教育城域网rv`qW-_
                     HANDLE hFile,                  //在用CreateFileA打开后得到的文件句柄
/M7pY g2r{0s0                     LONG lDistanceToMove,          //要移动的距离,这个是低32位
s2T)B)`5j M0                     PLONG lpDistanceToMoveHigh,    //要移动的距离,这是高32位,要注意这是一个指向数据的指针
k,\ b!N7c4g0                     DWORD dwMoveMethod             //表示指针开始的位置个人博客---梅州教育城域网6\YvX b$V\*g;N`
                     ); 
] N;I [J ku$p0个人博客---梅州教育城域网]V|2?j,s
winhex里,未脱壳的尾部数据:
'B i7RR@0个人博客---梅州教育城域网&yAW!ZT T a!k9z H
000d264dh: 4E 3E 4E 3E 0A 4E 3E 4E 3E 00 00 00 00 09 00 00 ; N>N>.N>N>.......个人博客---梅州教育城域网x&lOQJ W
000d265dh: 00 2E 5C 66 73 62 2E 49 50 44 00 24 0C 00 5A 26 ; ..\fsb.IPD.$..Z&个人博客---梅州教育城域网 ~)s @ lD4c/a O^
000d266dh: 0D 00 20 20 20 20 46 53 4A 4D 20 49 50 44 20 57 ; ..    FSJM IPD W个人博客---梅州教育城域网IZQk;Jx%N?u4P-x
000d267dh: 33 32                                           ; 32
|Dijg3TP@+|^0
I7[r6r MCf0000C2400就对应:DWORD dwMoveMethod个人博客---梅州教育城域网4J7S4w(}K+W
000D265A就是指向长度的偏移地址
v Jx)d6d\ y0所以修复的两个要点就是overlay的长度和overlay的开始地址!个人博客---梅州教育城域网}@,B2D0jT[

)v2pm-lR JbY+^A0要做的就是选中整个overlay的数据段,copy到脱壳文件里。
*m(zn{t~%X D0选000C2400为段开始,选000D267E为段结束,这就是整个overlay的数据段,编辑-》复制选块-》正常。
u%s5B,N{5l#bpO r0个人博客---梅州教育城域网 GsO0\^$n8Ux
winhex打开脱壳后文件,不需要费心找空白的地方,直接在最后一字节后paste,因为winhex可以自动扩展文件长度。
GFa3ZY0h0个人博客---梅州教育城域网3pM2b;v)i Oa_
paste后文件尾部地址和数据情况:个人博客---梅州教育城域网.HFs6B&o#@7?
个人博客---梅州教育城域网'W-Ok{%n3g l k
00259a4dh: 4E 3E 4E 3E 0A 4E 3E 4E 3E 00 00 00 00 09 00 00 ; N>N>.N>N>.......个人博客---梅州教育城域网)Vl`$L4z*S
00259a5dh: 00 2E 5C 66 73 62 2E 49 50 44 00 24 0C 00 5A 26 ; ..\fsb.IPD.$..Z&个人博客---梅州教育城域网D*\mtk&H`.\T.u
00259a6dh: 0D 00 20 20 20 20 46 53 4A 4D 20 49 50 44 20 57 ; ..    FSJM IPD W
I4w@!GXw$D000259a7dh: 33 32      
'iYkL:{vpI0                                     ; 32个人博客---梅州教育城域网t"?9MtA9uva
查看长度地址09的偏移量为00259A5A
:MU*?a)S4sY0所以修改000D265A为00259A5A个人博客---梅州教育城域网'Fn g*^(Bx5cV3]*?8]0@
修改overlay数据开始地址,修改000C2400为00249800
{$p'zW ~"GF)C0
2e]{ S1Ln1BVUrCL0修改后数据情况:个人博客---梅州教育城域网jY?f6KSd1H2i
00259a4dh: 4E 3E 4E 3E 0A 4E 3E 4E 3E 00 00 00 00 09 00 00 ; N>N>.N>N>.......
#C S.s0d5F]000259a5dh: 00 2E 5C 66 73 62 2E 49 50 44 00 98 24 00 5A 9A ; ..\fsb.IPD.?.Z?
-vDv)`3X2U~.v00259a6dh: 25 00 20 20 20 20 46 53 4A 4D 20 49 50 44 20 57 ; %.    FSJM IPD W
*X i aW[F9RF @000259a7dh: 33 32                                           ; 32
?OUd+r?a*Zd kz0保存就ok了:)个人博客---梅州教育城域网ym~&V t$D5]
个人博客---梅州教育城域网 Fp!{e2GZ

1xrI:@9efH0--------------------------------------------------------------------------------
:a*[k-_ n-S&BkE0【破解总结】个人博客---梅州教育城域网.` h5?)pi#cWT.Bjl*j

O O9b Ox(EskM$zU0
V:l0S;Ga k O0这类overlay问题和《浅谈脱壳中的附加数据问题(overlay)》所提到的overkay问题好象
uPK5I6Sl.WN0是同属一个问题的两个类型。本文提到的overlay的处理时,是不能运用《浅谈》一文里爆
^6M;Kly,@bd0句的方法,因为这里的数据虽然是附加数据,但是文件数据的主体的一部分,缺少这部分数个人博客---梅州教育城域网f)J"P-| x v3w(s
据,文件虽然能运行,但却是没有意义的!所以只能手动修正尾部的overlay数据。
q%B Vg"^FN+]0这种数据产生的原因大概是dephi对附加资源的保存过程中产生的,具体流程不太了解:(个人博客---梅州教育城域网"F/pR|9I8U'j4l/agUE%U;i

&v5kmi&Szv#C:K0以下给出这类dephi的overlay数据手动处理的快捷方法,无须使用ollydbg,有点机械,如有个人博客---梅州教育城域网L2\PDaH"s1W'N
错误望指出。
g T)v,u _ TW01)脱掉主文件的壳,修复错误的输入表
#SZ-F&e1f02)16进制编辑器打开原文件,查找文本“f2000”把所得的偏移量减去5就是原文件里overlay个人博客---梅州教育城域网%Z(PYC6G5v
数据的开始地址,copy至文件尾部。个人博客---梅州教育城域网/D4Fi^}
3)打开脱壳后文件,从文件最后一字节,开始粘贴,并记起始地址为A.个人博客---梅州教育城域网+C4S6h+B'uLe$CES
4)再查找文本“FSJM IPD W32”,所得的偏移量减去C就是存放起始地址的地方,用地址A代替个人博客---梅州教育城域网JhA.I t4w&M u8p V
(注意数据的保存方式)
H1mJ+A,|[GF1~05)最后用存放起始地址的地方前最近的“00 00 00 00”后一个字节的偏移量替换存放起始地
%^)F;l1q0y`U0址后的4字节的内容,保存就ok!个人博客---梅州教育城域网-t6_+c3_GX(uF

Kzwm\2U0其实最好就是把外挂省下的钱给点xikug,forgot,老罗...写个工具出来,“他们那个都是编程个人博客---梅州教育城域网QAi#v&Zi`
强人,说了少了,他不干,俺啊俺啊...”:)

TAG:

引用 删除   /   2008-03-11 18:22:35
老师看不明白呀!
2008届中专生
引用 删除 Guest   /   2008-03-11 18:20:33
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar