指引网

当前位置: 主页 > 编程开发 > .NET >

GetACP的使用方法

来源:网络 作者:佚名 点击: 时间:2017-11-17 03:53
[摘要] 今天分析一个加了变形壳的样本,感觉不像有什么保护,可是一运行就退出了。仔细调试了一下,发现是壳中这段代码导致的退出: call dword ptr ds:[edi-10] ;GetACP cmp eax,3A8 jnz short next push 0 call dw
今天分析一个加了变形壳的样本,感觉不像有什么保护,可是一运行就退出了。仔细调试了一下,发现是壳中这段代码导致的退出:

call dword ptr ds:[edi-10]   ;GetACP
cmp eax,3A8                    
jnz short next
push 0
call dword ptr ds:[edi-14]   ;ExitProcess

上网查了一下,GetACP() 这个 API 用于判断目前正在生效的ANSI代码页,返回值为目前活动ANSI代码页的标识符,可能的代码页包括下面这些:

874 泰语 932 日语
936 中文(简体) 949 朝鲜语
950 中文(台湾和香港繁体) 1200 Unicode
1250 东欧语言 1251 西里尔语
1252 美国和西欧语言 1253 希腊语
1254 土耳其语 1255 希伯来语
1256 阿拉伯语 1257 波罗的语

印象中熊猫烧香也是用这个 API 判断日文操作系统的。0x3A8 即 936,若操作系统是简体中文就退出了。
------分隔线----------------------------