ollydbg 调试服务调试VC6的Release版本怎么找main函数

2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。查看: 2809|回复: 6
VC6中成功调用opencv2.3
opencv从1.1后就一直不支持vc6。为了使用opencv的一些功能,必须升级到vs2008。
而原来的vc6的程序在vs2008下编译时会冒出一堆错。这就导致原来用vc6的程序只能使用opencv1.0以下的版本。
最近,我试着用vs2008编译opencv的dll。然后,用vs2008编写一个dll,导出函数。
在vc6中写一个类封装这些函数。可以成功调用opencv2.3的函数。
当然,由于精力,没有导出所有的函数。大家可以自行添加函数。
VC6中成功调用opencv2.3
要把opencv2.3的那些动态库也要放到vc6的可执行程序目录下,否则报错。
为了测试方便,我把封装库放到c:下,实际应用的时候不要这样。
VC6中成功调用opencv2.3
VC6都是1998年的老软件,能活到现在已经是奇迹了。
2008也扔了吧
VC6中成功调用opencv2.3
我建议直接修改你以前的VC6下的调用opencv1.0的代码,改成调用opencv2.3的。这样用着才爽,呵呵。
VC6中成功调用opencv2.3
vc6压缩下只有260MB,安装就几分钟,vs2005以上动不动就上G的光盘,装下得半个小时。
VC6中成功调用opencv2.3
vc6压缩下只有260MB,安装就几分钟,vs2005以上动不动就上G的光盘,装下得半个小时。你要是在乎体积,我也建议你用mingw-gcc,大概只有20-30M,啥都有了。(编译器,调试器等待)。另外IDE可以用codeblocks,codelite,qtcreator,都有很多可以选择。也很小。
VC6中成功调用opencv2.3
vc6压缩下只有260MB,安装就几分钟,vs2005以上动不动就上G的光盘,装下得半个小时。
谁每天没事装VC玩?
Powered by2011年4月 VC/MFC大版内专家分月排行榜第三
2011年4月 VC/MFC大版内专家分月排行榜第二
2011年3月 VC/MFC大版内专家分月排行榜第三
2012年12月 总版技术专家分月排行榜第一2012年10月 总版技术专家分月排行榜第一2012年9月 总版技术专家分月排行榜第一2012年8月 总版技术专家分月排行榜第一
2012年11月 总版技术专家分月排行榜第三
2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
本帖子已过去太久远了,不再提供回复功能。反汇编中VC&&6&0中main函数的识别
如何寻找main函数的入口点,先看下mainCRTStartup的启动代码
mainCRTStartup函数在VC++6.0中的代码;
//预编译宏
#else /*_WINMAIN_*/
#ifdef WPRFLAG
//宽字符版控制台启动函数
void wmainCRTStartup(
#else/*WPRFLAG*/
//多字节版控制台启动函数
void mainCRTStartup(
#endif /*WPRFLAG*/
#endif /*_WINMAIN_*/
//获取系统版本信息
_osver=GetVersion();
_winminor=(_oserver&&8)&0x00FF;
_winmajor=_oserver & 0xFF; //主版本
_winver=(_winmajor&&8)+_
_osver=(_osver&&16) & 0x00FFFF;
//堆空间初始化过程,在这个函数里,指定了程序中堆空间的起始地址
//_MT是多线程标记
#ifdef _MT
if(!_heap_init(1))
#else /*_MT*/
if(!_heap_intit(0))
#endif /*_MT*/
fast_error_exit(_RT_HEAPINIT);
//初始化多线程环境
#ifdef _MT
if(!_mtinit())
fast_error_exit(_RT_THREAD);
#endif /*_MT*/
//宽字符处理代码略
//多字节版获取命令行
_acmdln=(char*)GetCommandLineA();
//多字节版获取环境变量信息
_aenvptr=(char*)_crtGetEnvironmentStringsA();
//多字节版获取命令行信息
_setargv();
//多字节版获取环境变量信息
_setenvp();
#endif /*WPRFLAG*/
//初始化全局数据和浮点寄存器
//窗口程序处理代码略
//宽字符串里代码略
//获取环境变量信息
_initenv=_
//调用main函数,传递命令行参数信息
mainret=main(_argc,_argv,_environ);
#endif /*WPRFLAG*/
#endif/*_WINMAIN_*/
//检查main函数返回值执行析构函数或atexit注册函数指针,并结束程序
exit(mainret)
//退出结束代码略
可见调用的函数有:
GetVersion()
_heap_init()
GetCommandLineA()
_crtGetEnvironmentStringsA()
_setargv()
_setenvp()
一共七个函数之后开始调用main函数;
而且main函数有三个参数,会有压栈动作
比如3个push操作下的一个call就是main 了~
识别main函数入口点上OllyDBG似乎没有IDA做的好~
虽然OD也有那一个选项,但每次都停在了加载地址上,IDA直接识别main~
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.041 (s). 12 q(s)& [持续更新]OllyDbg使用技巧汇总
[持续更新]OllyDbg使用技巧汇总
F2:设置断点,只要在光标定位的位置(上图中灰色条)按F2键即可,再按一次F2键则会删除断点。
F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到 CALL 等子程序不进入其代码。
F7:单步步入。功能同单步步过(F8)类似,区别是遇到 CALL 等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。
F4:运行到选定位置。作用就是直接运行到光标所在位置处暂停。
F9:运行。按下这个键如果没有设置相应断点的话,被调试的程序将直接开始运行。
Ctrl + F9:执行到返回。此命令在执行到一个 ret (返回指令)指令时暂停,常用于从系统领空返回到我们调试的程序领空。
Alt + F9:执行到用户代码。可用于从系统领空快速返回到我们调试的程序领空。
Ctrl + N:显示模块的输入输出函数(标签、名称)
Alt + B:显示断点窗口
Ctrl + F2:重新开始
Ctrl + G:跟随地址
bp 断点地址, 断点条件
如bp , eax == 0
反汇编设置
有时候下载下来的OllyDbg的反汇编代码中没有显示段寄存器(如SS, DS等)以及模块地址,可能不太方便,可以设置一下。比如
E8 E848FCFF
A1 442C4400
eax, dword ptr [442C44]
需要显示成:
E8 E848FCFF
CrackMe3.00405B68
A1 442C4400
eax, dword ptr ds:[442C44]
可以选择菜单项“选项”——“调试设置”——“反汇编”:
函数参数与局部变量设置
如果你已经习惯了通过ebp与esp寄存器来观察局部变量或者函数参数,而不想看到[LOCAL.XXX]或者[ARG.XXX],如:
8D8D C4EAFFFF lea
ecx, [local.1359]
setup.0040119D
8D8D C4EAFFFF lea
ecx, dword ptr ss:[ebp-153C]
setup.0040119D
那么可以选择菜单项“选项”——“调试设置”——“分析1”:将显示函数中的参数及局部变量去掉。
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!
您可能对下面的文章也感兴趣:
(推荐使用
(关于作者 Wins0n/代码疯子)
免责声明:本站所有内容仅代表个人观点,无法保证100%准确,如有错误请联系指正,谢谢!
2017年四月 &(1)
2016年十月 &(1)
2016年三月 &(1)
2016年二月 &(1)
2016年一月 &(1)
2015年十月 &(1)
2015年六月 &(2)
2015年四月 &(1)
2015年一月 &(1)
2014年十一月 &(5)
2014年十月 &(1)
2014年九月 &(1)
2014年八月 &(2)
2014年七月 &(3)
2014年六月 &(4)
2014年四月 &(1)
2014年三月 &(2)
2014年二月 &(1)
2014年一月 &(1)
2013年十二月 &(1)
2013年十一月 &(2)
2013年十月 &(2)
2013年九月 &(3)
2013年八月 &(2)
2013年七月 &(3)
2013年六月 &(2)
2013年五月 &(1)
2013年四月 &(4)
2013年三月 &(2)
2013年二月 &(1)
2013年一月 &(2)
2012年十二月 &(5)
2012年十一月 &(3)
2012年十月 &(3)
2012年九月 &(4)
2012年八月 &(4)
2012年七月 &(3)
2012年六月 &(3)
2012年五月 &(6)
2012年四月 &(4)
2012年三月 &(6)
2012年二月 &(4)
2012年一月 &(7)
2011年十二月 &(9)
2011年十一月 &(9)
2011年十月 &(13)
2011年九月 &(18)
2011年八月 &(8)
2011年七月 &(7)
2011年六月 &(16)
2011年五月 &(13)
2011年四月 &(21)
2011年三月 &(22)
2011年二月 &(15)
2011年一月 &(7)
2010年十二月 &(23)
2010年十一月 &(33)
2010年十月 &(35)
2010年九月 &(42)

我要回帖

更多关于 ollydbg 反调试 的文章

 

随机推荐