首页
社区
课程
招聘
[旧帖] 字符串函数的IDA翻译, 部分代码看不懂, 求高手解释 0.00雪花
发表于: 2013-12-31 03:19 4116

[旧帖] 字符串函数的IDA翻译, 部分代码看不懂, 求高手解释 0.00雪花

2013-12-31 03:19
4116
下面是一个典型的字符串处理函数, IDA 翻译的伪代码如下. 看不懂的地方我标了一下,高手能解释一下或者用相应c++代码翻译下吗?

   int __cdecl sub_47D97D(int a1, int a2, int a3)
{
  int v3; // eax@1
  int v4; // eax@2
  int v5; // eax@5
  int v6; // eax@5
  int v7; // eax@6

  ((void (__thiscall *)(int, _DWORD))ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>)(
    a1,                                                                    //这句什么意思
    0);                  
  v3 = 0;
  while ( a3 > 0 )
  {
    --a3;
    v4 = ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::Find(45, v3);
    if ( v4 == -1 )
      return a1;
    v3 = v4 + 1;
  }
  v5 = ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::Mid(a2, &a3, v3);
  ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::operator_(a1, v5);   ////这句什么意思?
  ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::_CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>(&a3); ////这句什么意思
  v6 = ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::Find(45, 0);
  if ( v6 >= 0 )
  {
    v7 = ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::Left(a1, &a3, v6);
    ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::operator_(a1, v7);  //what mean?
    ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::_CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>(&a3);    //这句什么意思
  }
  return a1;
}

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 159
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
主要是对上面代码的operator 看不懂, 不知道是 到底是哪种operator (+ _,  = ,  !=),还是别的意思?
2013-12-31 03:21
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感觉 像是符号重载 。  反汇编的时候会将源码中的各种细节都展开了。 这模板反汇编出来看着真够恶心的。
2013-12-31 09:47
0
雪    币: 1121
活跃值: (717)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
4
表示不懂高级语言
2013-12-31 09:49
0
雪    币: 159
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
没有高手来解释解释 ? 这些函数实际上都是mfc100 导出的函数.  模板展开后看不懂了
2013-12-31 22:16
0
游客
登录 | 注册 方可回帖
返回
//