首页
社区
课程
招聘
Riijj系列之cm14分析+注册机
发表于: 2013-2-1 16:15 8347

Riijj系列之cm14分析+注册机

2013-2-1 16:15
8347

Riijj系列之cm14分析+注册机
工具:IDA6.1+WinDBG
系统:WinXP sp3
CM :下载cm14 riijjcm14.zip
昨天公司开年会到晚上十二点钟,完了就和同事们打牌到早晨5点多钟,玩的挺Hi,没来的及发,现在补上!
这个CM14有点恶作剧的意思,riijj故意设置了一个陷阱给调试的人。因为算法部分有两个。只有一个是真的,假的那个你进去之后会面临很大的计算量并且即使你分析出结果,“强制跳转”会弹出个空的提示框,没有任何提示(标题和内容为空),之后不要诧异点击确定之后程序就进入了死循环。
Cm14与cm11结构很相似,程序主窗体前有同样的反调试代码。相似部分请参考cm11的分析
下面用IDA大致看下流程
sub_401920中
主要有一个创建对话框CreateDialogParamA和两个创建定时器SetTimer这三个部分也就是程序的关键点
CreateDialogParamA的回调函数中主要有一个设置变量的操作

___setargv proc near
mov     dword_40A634, 1
retn
___setargv endp
int __stdcall TimerFunc(int a1, int a2, int a3, int a4)
{
  int result; // eax@1
  result = dword_40A634;
  if ( dword_40A634 )						;当dword_40A634=1时,
  {
    dword_40A634 = 0;					;清dword_40A634=0
    result = dword_40A630();				;调用dword_40A630过程;
  }
  return result;
}
int __stdcall sub_4017F0(int a1, int a2, int a3, int a4)
{
  int result; // eax@1
  result = sub_401260();
  dword_40A630 = sub_401060;				;置dword_40A630 = 过程A
  if ( (_BYTE)result )						;sub_401260()返回为1时
    dword_40A630 = sub_401490;			;置dword_40A630 = 过程B
  return result;
}

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

上传的附件:
收藏
免费 6
支持
分享
最新回复 (6)
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
前排占位 LZ受精上瘾了  支持
2013-2-1 16:40
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rwx
3
楼主 佩服 佩服 向你致敬
2013-2-1 19:16
0
雪    币: 97697
活跃值: (200829)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
Thanks for share.
2013-2-1 22:50
0
雪    币: 6525
活跃值: (3423)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
应该带上CM啊,这样看精华的时候也方便
2013-2-2 01:34
0
雪    币: 269
活跃值: (906)
能力值: ( LV12,RANK:345 )
在线值:
发帖
回帖
粉丝
6
感谢Kisesy,已添加
2013-2-2 09:44
0
雪    币: 42
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主无量功德,已收藏
2013-2-2 13:56
0
游客
登录 | 注册 方可回帖
返回
//