|
[求助]请高手教我怎样在c++下反跟踪
该函数在winbase.h中声明,一般包含了windows.h就可以引用。 查看头文件,该函数的声明被条件预编译指令包围: #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) WINBASEAPI BOOL WINAPI IsDebuggerPresent( VOID ); #endif 所以请检查对应的宏定义。 另外,我提供的概念性的代码,使用IsDebuggerPresent()只是为了说明可以在这一点上检测调试器,但实际中该函数几乎检测不出调试器的存在。所以具体应用中应该采用其它调试器检测技术,而不应该相信这个函数的返回值。 如果反汇编该函数,就知道它只是取TEB的对应域的值,该值几乎总是被调试器所修改。 关于调试器检测,有很多比较成熟的技术,请查找相关技术资料。 |
|
[求助]再问c++中感叹号是什么意思??
对不起,虽然我不敢自称高手,但自认还不能算是低水平。 我的意思是说楼主的学习态度不端正。 遇到困难向人请教,本来无可厚非。我本是十分乐意帮助别人的。可是如果自己一点都不动,什么都请教。这就有点说不过去了。老师喜欢爱提问的学生,但不喜欢提不应该提的问题的学生,因为这样的学生提问没有经过思考。 而且这个问题有多么基础,所有人都能看出来。 任何一本初级的C教程里,绝对是讲得非常清楚的。 我并没有对发贴的人表示轻蔑。 况且我已经很仔细回答过他的问题了。不是在这贴。 但是我后来发现他同一个问题发了三个贴。就忍不住进来再说一句。而且我认为我说的语气没什么问题吧。 你说我低水平,没关系。但我的人品绝对没问题。 |
|
[求助]想学STL哦,大家觉的多久可以学完
看你数据结构的基础了C++语言的理解程度了。 如果对C++的一些特性,主要是模板的特性理解足够深入的话,STL不在话下,一星期就可以适应STL风格的编程,一个月就具有把所有以前的代码改写成为使用STL的能力了。 STL的学习并不难。推荐一本书,《C++ In Action》,让你学会真正的“工业强度”的标准C++编程。 如果想要通过学习STL来提高自己对语言本身的理解,可以看下《STL源码剖析(SGI版)》。 如果对C++模板元编程有兴趣,推荐《C++设计新思维——泛型编程与设计模式之应用》,看过之后你会觉得自己原来根本就不懂什么是C++。 如果STL已经没什么问题,还可以去研究一下Boost,不过这个东西估计没人能够全部研究过。但看一看真的是有非常非常大的启发。 |
|
[求助]再问c++中感叹号是什么意思??
请先学习C语言。 关于书本中的基础知识的问题,请自行解决。 本论坛的技术特色是软件安全,逆向工程和内核底层技术。 如果学习C语言有困难,请到开发者社区寻求帮助。 推荐:CSDN |
|
[求助]c++感叹号疑问??
衷告:连strncmp()的用法都搞不清楚,先好好学习基础,应用程序写好,再说驱动的事吧。 我先回答你的问题: strcmp()系列的函数,不管strncmp(),strcmp(),stricmp(),strnicmp(),_mbsncmp(),wstrncmp()等等,你大抵理解成为它返回的值是 第一个参数 和 第二个参数 的“差”就容易记了。 也就是说,当两个被比较的串相同,则“差”为0;若返回值大于0,则第一个串“大于”第二个串。 现在你再看那段代码是不是明白了。 另外,“感叹号”在C中叫做逻辑非操作符。 一个问题发一次就够了。多发无益。 |
|
[求助]用什么软件能打开这个文件
东西给你解出来了。 由于一些原因,方法不便公布。大家也不要再问了。 出于版权保护的原因,我加了密码。密码我用论坛悄悄话告诉你。 免责声明:仅供自己研究学习使用。如果私自传播,后果自负。 6p16.rar |
|
[讨论]如何才能把od上的数据截图到论坛上来共享交流.
一般直接粘OD中的代码或数据就行了。 如果需要图来说明,一般局部截图就好。 即使全截也没关系,分辨率的问题不太影响。 本论坛上传权限只有发贴到一定数量才可以开通。上传附件有文件类型限制和大小限制。 具体请阅读版规。 |
|
[求助]几个PE文件的映像基址都是0x400000时候怎么办
请先学习操作系统及Intel体系的相关知识。特别是虚拟地址的知识。 不同的进程在不同的地址空间内运行,操作系统把它们映射到不同的物理地址上。 即使在同一个进程内,两个模块如果连接器的优先装载地址碰巧相同(比如两个dll),也是没有关系的。因为它是“优先”装载地址,也就是说是可以变的。 这就涉及到重定位的知识了。请参考相关资料。推荐《连接器与装载器》 |
|
[求助]请高手教我怎样在c++下反跟踪
再说两句。 像这样的代码,在软件工程学中,可以说是非常糟糕的。 但是它反跟踪真的很有效果。 作为一个逆向爱好者,我并不害怕软件作者采用复杂的反跟踪技术。 我的愿望其实是人们都用正版软件,所有破解都是严格限于技术圈子内部。 中国民众的知识产权意识还是差得不少,这需要很多时间。 |
|
[求助]请高手教我怎样在c++下反跟踪
像 int a = 1/0;这种代码,编译器根本就通不过,至少我的IntelC++Compiler不行。 而且这样的代码根本无法干扰破解者,一眼就可以看出来这里要用SEH了。 要使用异常来干扰破解者,一定要做得隐蔽。可以在深层的函数调用当中产生异常,而在外层处理异常,还可以使用嵌套异常处理。我这里举个小小的例子。虽然无法保证不被跟踪,至少会给破解者制造很大的麻烦。代码如下: 以下代码在我的编译器上工作正常,请自行包含正确的头文件。 程序采用递归调用fun1,在递归第二层时产生除0异常。 在fun2中捕获异常,并抛出一个整数。 在fun3中捕获这个整数,并用它调用fun1,这将再次抛出异常。 该异常被捕获后,如果没有检测到调试器,将某函数指针抛出。 最外层捕获这个函数指针,并用它执行必要的操作。 typedef void (*pFunc)(void); extern void keyfunction(void); void fun1( int i) { double f = (double) i; f *= 0.237; if ( i ^ ( i - i ) | 0x21 ) { int j = (i+1) / i; fun1( j-1); } else return; } void fun2( ) { try { int j = 0x128; j *= 6; fun1 (j); } catch(...) { throw (int)3279; } } void fun3 () { try { fun2(); } catch ( int i ) { try { fun1(i); } catch(...) { if ( !IsDebuggerPresent()) throw (pFunc)keyfunction; else throw; } } } int main() { try { fun3(); } catch( pFunc pf) { (*pf)(); } catch( ... ) { std::cout << "Ooops!!!" << std::endl; return -1; } return 0; } void keyfunction(void) { std::cout << "in keyfunction" << std::endl; } 关于这个演示代码,其中函数指针可以用一个对象代替,在检测到调试器时,也可以抛出一个假的函函数指针,这样更具有迷惑性。 这样的异常处理,相信一般的破解者,是很难找到关键点了。 再结合其它的反调试技术,可以做到让有经验的破解者也不容易跟踪。 如果再购买商业的软件保护系统,可以说是到了BT程度了。 |
|
[求助]这个CM看不懂, 是不是下鼠标断点啊?怎么下?
今天晚上又写了一篇东西。发在了这里。希望对新手有所帮助。 http://bbs.pediy.com/showthread.php?p=528771 |
|
|
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值