首页
社区
课程
招聘
MFC主程序里的内容反编译后怎么到dll里去了
发表于: 2011-3-26 11:18 6081

MFC主程序里的内容反编译后怎么到dll里去了

2011-3-26 11:18
6081
用MFC对话框程序做了一个点击按钮就加1显示的程序,按键程序如下,可执行文件见附近:
void CStrNumDlg::OnButton1() 
{
	num++;
	CString strNum;
	strNum.Format("%d",num);
	m_strNum =strNum;
	UpdateData(FALSE);
}

点击显示到105的时候,通过字符串搜索与内存写入断点定位后,发现写入内存的代码是在ntdll中的,如下图

我用“按钮入口程序定位”软件试过了,找到按键程序入口地址,单击按钮中断后进入这段程序,程序的主要功能也是在系统dll里完成的,这是怎么回事呢?
请问怎样才能在主程序领空中找到上面那段按键程序的反编译内容呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 93
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在主程序中为数据做一些运算,如加法减法乘法除法之类的,反编译后也找不到这些代码
通过设内存断点的方法找到的都是dll中的代码,感觉主程序中的代码编译后都“嵌入”到dll中去了,好是诡异!
2011-3-26 11:21
0
雪    币: 962
活跃值: (1686)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
设置MFC库为静态编译就好了
2011-3-26 12:51
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
00401540    .  6A FF             PUSH -1
00401542    .  68 D81A4000       PUSH strNum.00401AD8                            ;  SE handler installation
00401547    .  64:A1 00000000    MOV EAX,DWORD PTR FS:[0]
0040154D    .  50                PUSH EAX
0040154E    .  64:8925 00000000  MOV DWORD PTR FS:[0],ESP
00401555    .  51                PUSH ECX
00401556    .  56                PUSH ESI
00401557    .  8BF1              MOV ESI,ECX
00401559    .  8D4C24 04         LEA ECX,DWORD PTR SS:[ESP+4]
0040155D    .  FF46 60           INC DWORD PTR DS:[ESI+60]                       ;  num++
00401560    .  E8 55020000       CALL <JMP.&MFC42.#540_CString::CString>
00401565    .  8B46 60           MOV EAX,DWORD PTR DS:[ESI+60]
00401568    .  8D4C24 04         LEA ECX,DWORD PTR SS:[ESP+4]
0040156C    .  50                PUSH EAX
0040156D    .  68 20304000       PUSH strNum.00403020                            ;  ASCII "%d"
00401572    .  51                PUSH ECX
00401573    .  C74424 1C 0000000>MOV DWORD PTR SS:[ESP+1C],0
0040157B    .  E8 70020000       CALL <JMP.&MFC42.#2818_CString::Format>
00401580    .  83C4 0C           ADD ESP,0C
00401583    .  8D5424 04         LEA EDX,DWORD PTR SS:[ESP+4]
00401587    .  8D4E 64           LEA ECX,DWORD PTR DS:[ESI+64]
0040158A    .  52                PUSH EDX
0040158B    .  E8 5A020000       CALL <JMP.&MFC42.#858_CString::operator=>
00401590    .  6A 00             PUSH 0
00401592    .  8BCE              MOV ECX,ESI
00401594    .  E8 4B020000       CALL <JMP.&MFC42.#6334_CWnd::UpdateData>
00401599    .  8D4C24 04         LEA ECX,DWORD PTR SS:[ESP+4]
0040159D    .  C74424 10 FFFFFFF>MOV DWORD PTR SS:[ESP+10],-1
004015A5    .  E8 26010000       CALL <JMP.&MFC42.#800_CString::~CString>
004015AA    .  8B4C24 08         MOV ECX,DWORD PTR SS:[ESP+8]
004015AE    .  5E                POP ESI                                         ;  strNum.004022F0
004015AF    .  64:890D 00000000  MOV DWORD PTR FS:[0],ECX
004015B6    .  83C4 10           ADD ESP,10
004015B9    .  C3                RETN
2011-3-26 13:17
0
雪    币: 93
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢EMayej ,请问你是如何做到的?
2011-3-26 15:51
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
在字符串参考里找"%d"
2011-3-26 17:34
0
游客
登录 | 注册 方可回帖
返回
//