-
-
[原创] [for newbabie] PECompact v2.79 loader分析.By winndy
-
2007-10-6 15:56 7245
-
[for newbabie] PECompact v2.79 loader分析.By winndy
1.WHY?
PECompact是一款压缩壳,要脱很容易,但我的感觉是脱完了,啥感觉都没有,
到达OEP之间,沿途的风景都看不到。勿在浮砂筑高台。于是用IDA详细分析了一下loader。
最好自己打开idb文件取看看,教材不可能那么详细。
分析到这个样子之后,后来我发现居然有PECompact的loader sdk,于是没兴趣分析下去了。
原本还打算做个静态脱壳机的,有时间了也许再对照loader sdk,拿来当编程的例子练手。
这个loader分析我也没参考其他人的分析,后来在论坛搜了一把,发现berglob也有个分析。
我是自己学习才这样分析一遍的。
2. HOW?
2.1
入口处:
SEH handler:0043897C
0043897C-0043899E处的代码将0043899F处的代码为
Mov eax,0F0437701h
并将修改00401016处的代码为:
00401016 - E9 84790300 jmp 0043899F
将流程转到0043899F,然后卸载SHE handler。
然后分配一块内存,并解压loader的代码,解压算法为aplib。分配内存的大小和待解压代码的RVA在
_aP_depack_asm和SEH handler之间,见注释。
aP_depack_asm是根据源码对照识别出来的。
Loader用aplib解压出来后,然后去执行(call edi),将主程序再用LZMA算法解压出来,并进行一些修复工作
和填充IAT等的工作。最后算出OEP,返回,用 jmp eax,调到OEP。
2.2 解压出来的loader
Loader的代码如下:(call edi ,edi=003C09F0进入)
003C0000的代码部分dump出来之后,也用IDA进行分析,只要将载入偏移量设为003C0000进行了。
loader的主要代码如下:
最后对解压出来得区段设置相应的内存属性:
值得注意的是,后来我PECompact发现有loader SDK,那些函数名都是自己定义的,不是很确切。但在loader SDK中是没有aplib和LZMA的解压部分的。
调用LZMA解压的代码片段为:
循环取_LZMADecode_Section的地址,保存在eax中,然后call eax进行调用。
抽出来的_LZMA_Decode的asm代码我没能与c代码对应起来。
还有比较有意思的一段代码,FixCalls_E8F1_Jmps:
扫描call 32bit,jmp 32bits,因为call和jmp之后的地址是加密了的,需要解密出来。
上面的11F1常数取自:
补上E8F1的代码片段为:FixCalls_E8F1
3.Summary
尽管后来找到loader sdk,但loader SDK却没有aplib和lzma的解压函数,这个PECompact是不是在忽悠纳税人啊!
不过这也是第一次这样分析一款压缩壳,收获颇多。
详细的分析大家还是看idb去。要写静态脱壳机,还需要仔细对照sdk看,还有很多情况要考虑。
高手不要笑啊!
IDB和抽出来的LZMA_Decode_ASM.asm
PECompact v2.79 loader分析.By.winndy.zip
1.WHY?
PECompact是一款压缩壳,要脱很容易,但我的感觉是脱完了,啥感觉都没有,
到达OEP之间,沿途的风景都看不到。勿在浮砂筑高台。于是用IDA详细分析了一下loader。
最好自己打开idb文件取看看,教材不可能那么详细。
分析到这个样子之后,后来我发现居然有PECompact的loader sdk,于是没兴趣分析下去了。
原本还打算做个静态脱壳机的,有时间了也许再对照loader sdk,拿来当编程的例子练手。
这个loader分析我也没参考其他人的分析,后来在论坛搜了一把,发现berglob也有个分析。
我是自己学习才这样分析一遍的。
2. HOW?
2.1
入口处:
SEH handler:0043897C
0043897C-0043899E处的代码将0043899F处的代码为
Mov eax,0F0437701h
并将修改00401016处的代码为:
00401016 - E9 84790300 jmp 0043899F
将流程转到0043899F,然后卸载SHE handler。
然后分配一块内存,并解压loader的代码,解压算法为aplib。分配内存的大小和待解压代码的RVA在
_aP_depack_asm和SEH handler之间,见注释。
aP_depack_asm是根据源码对照识别出来的。
Loader用aplib解压出来后,然后去执行(call edi),将主程序再用LZMA算法解压出来,并进行一些修复工作
和填充IAT等的工作。最后算出OEP,返回,用 jmp eax,调到OEP。
2.2 解压出来的loader
Loader的代码如下:(call edi ,edi=003C09F0进入)
003C0000的代码部分dump出来之后,也用IDA进行分析,只要将载入偏移量设为003C0000进行了。
loader的主要代码如下:
最后对解压出来得区段设置相应的内存属性:
值得注意的是,后来我PECompact发现有loader SDK,那些函数名都是自己定义的,不是很确切。但在loader SDK中是没有aplib和LZMA的解压部分的。
调用LZMA解压的代码片段为:
循环取_LZMADecode_Section的地址,保存在eax中,然后call eax进行调用。
抽出来的_LZMA_Decode的asm代码我没能与c代码对应起来。
还有比较有意思的一段代码,FixCalls_E8F1_Jmps:
扫描call 32bit,jmp 32bits,因为call和jmp之后的地址是加密了的,需要解密出来。
上面的11F1常数取自:
补上E8F1的代码片段为:FixCalls_E8F1
3.Summary
尽管后来找到loader sdk,但loader SDK却没有aplib和lzma的解压函数,这个PECompact是不是在忽悠纳税人啊!
不过这也是第一次这样分析一款压缩壳,收获颇多。
详细的分析大家还是看idb去。要写静态脱壳机,还需要仔细对照sdk看,还有很多情况要考虑。
高手不要笑啊!
IDB和抽出来的LZMA_Decode_ASM.asm
PECompact v2.79 loader分析.By.winndy.zip
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。
赞赏
他的文章
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
softtip
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
狐狸少爷
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
softtip
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
softtip
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
email123
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
softtip
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
forgot
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
softtip
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
谁下载
fly
softbihu
bstzxy
kanxue
binliao
Flash
winndy
zerotime
WiNrOOt
softworm
萝卜
Aming
海风月影
Phoenix
xIkUg
xingbing
fxyang
ylp1332
脱壳请教
flyfox
vessial(xee)
daxia200N
newlaos
911xx
uyhj
zxc
cd37ycs
Xacs
exky
ww66
青山客
无聊的菜鸟
ads12357bo
Winter-Night
bluceliang
acafeel
killl
option
allenzhu
vrowang123
peaceclub
Romangol
zjcad
wynney
GiMiSky
mydear256
执着我一生
maomaoma
zhy_qie
lhglhg
cyberman
bos
guoj
stan52
gx_sz
progray
miza
aki
零下
zhuwg
zhaoocn
icers
tianxiali
cxhcxh
hrbx
xiaoboy
linxer
likunkun
wyqzm
fob
syspark
RegKiller
foria
cyto
readyu
ABCdiyPE
qqeleven
herx
刀片
foxabu
CCDebuger
oyksoft
anquan
surge
ywjgba
gtboy
xavkm
dummy
hawking
lorde
五德转移
Bewaar
无幻刹那
流行咒
风间仁
lovesmt
狐狸少爷
vinston
看原图