【VB6】的OEP平衡堆栈是
sub esp,0x4C

 

【VB5】的OEP平衡堆栈是 sub。【VB5】的OEP平衡堆栈是 sub
esp,0x54

特征1:VC链接器版本

【VC6】的OEP第一个API调用是GetVersion

图片 1

图片 2

图片 3

图片 4

【VC6】程序的IAT引用,都是FF15型的

 

 

a0) VB5:

图片 5

【VB5】的OEP第一个API调用是GetStartupInfoA

 

 

图片 6

【VB5】的OEP平衡堆栈是 sub。【VS2013】开始处,call
xxx; jmp xxx;
【VS2013】的OEP平衡堆栈是sub
esp, 0x44
【VS2013】的OEP第一个API调用是GetStartupInfoW
【VS2013】程序的IAT引用,都是FF15型的

 

【VB6】的OEP第一个API调用是GetStartupInfoA

图片 7

 

图片 8

a1) VB6

 

图片 9

【BC++】
二进制特征:EB1066623A432B2B484F4F4B90
【BC++】
OEP的第一个API调用是 GetModuleHandleA
【BC++】 IAT调用是
FF25形式的

d) VS2013

 

【VC6】的OEP平衡堆栈是
sub esp,0x58 或 sub esp,0x68或add esp, -0x5C

 

 

 

【VB5】程序的IAT引用,都是FF15型的

 

 

【Delphi】OEP上面是一个地址
【Delphi】OEP处
有5个CALL
【Delphi】OEP
5个CALL之后,全是0
【Delphi】OEP处第一个CALL有GetModuleHandleA调用
【Delphi】的IAT调用是
FF25形式的

b1) BC++

c)
VC6/E语言(通过分析,发现二者特征一致,可以判定E语言和VC6如出一辙)

 图片 10

特征2:OEP

VS版本 链接器版本
VS2017 14.12
VS2015 14.0, 14.1
VS2013 12.0
VS2012 11.0
VS2010 10.0
VS2008 9.0
VS2005 8.0
VC2003 7.0, 7.1
VC6/VB6/E语言 6.0
VC5/BC++ 5.0
Delphi 2.25
VB5

4.20

【VB6】程序的IAT引用,都是FF15型的

图片 11

b0) Delphi

这些特征,会对分析程序起到一定的帮助作用,这里,并没有完全列出全部的主流程序,希望抛砖引玉吧;

  • 在分析/逆向
    程序时,如果事先知道这类程序的一些特征,那将会是事半功倍的;
  • 分析/逆向
    程序,和写程序不同,比喻的话:写程序像在作案,分析/逆向
    程序就像是在破案,对破案来讲,重在假想和推理;

 

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注