IDA 常见操作 空格,切换反汇编视图 选择CALL或是跳转 进入函数内部或是跳转处 返回键 ESC daq.exe 分析32位程序 ,生成的IDA数据库文件是 .idb Idap64.exe 分析64位程序, 生成的IDA数据库文件是 .i64 查找程序main函数入口点 在exports选项卡下找到入口点 双击start_0 就进到了函数入口处.在没有导入签名库识别库函数前,显示的是sub_XXXX这样的地址. 使用IDA签名文件识别库函数 签名(view->open subviews->…
VS2015版本release查找main函数入口 vc++开发的程序main或WinMain函数是语法规定的用户入口,而不是应用程序入口.入口代码是mainCRTstartup.wmainCRTStartup.WinMainCRTSartup或wWinMainCRTStarup,具体情况由编译器制定. VS2015版本debug查找main函数在<VS程序反汇编找main函数>.release版本找main函数入口有所区别的地方在于一开始就单步步过一个call指令,jmp跳转.然后经过三个p…
有一段时间没有用vs2015,今天一启动就crash,尝试了以下办法: 1. 卸载掉这段时间安装的一些软件和vs插件 2. 修复安装 3. 卸载.重新安装vs2015 sp2版本 4. devenv.exe /SafeMode 5. devenv.exe /ResetSettings 6. devenv.exe /ResetUserData 7. devenv.exe /ResetSkipPkgs 然而都不奏效.于是开始分析具体的错误: Unhandled exception at 0x75b4…
在调试时会发现出于性能考虑.NET Framework dll加载的都是ngen版本,比如:System.dll,实际加载System.ni.dll. 如果希望加载非ngen版本,可以设置系统环境变量COMPLUS_ZapDisable=1.…
导致项目无法打开以及VS无法关闭. 解决方法: 1.关闭VS: 2.去C:\Users\<your users name>\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache文件夹下删除所有文件及文件夹: 3.重新打开VS即可.…
最近工作中接到了一个研究防止逆向编译的任务.研究了几天资料,最后基本实现了防破解技术,在这个工程中,也略有一些心得体会,现整理下来分享,供大家探讨参考研究.文中如有纰漏.失实之处,请大家及时给与指正. 防破解技术主要有四种实现方式:1.代码混淆(ProGuard)技术 2.签名比对技术 3.NDK  .so 动态库技术 4.动态加载技术. 参考资料:http://bbs.pediy.com/showthread.php?t=137112 第一种 代码混淆技术(ProGuard)  该技术主要是进…
客户端程序内嵌Webbrowser控件时,默认情况都是使用IE7兼容模式打开网页的.但是IE7有很多新的特性不支持,导致无法正常显示出来,所以需要强制使用高版本的IE内核来加载.渲染. void ChangeRegedit(const wchar_t* pExeName) { if ( NULL == pExeName ) return ; TCHAR szVersion[] = {}; DWORD dwSize = ; HKEY hKey; // 先获取IE版本 , KEY_READ, &hK…
     在之前的文章<RichEdit 各个版本介绍>中,写到RichEdit已经到达6.0版本了,而我们经常编程使用的却还是2.0,在vc6.0中甚至还使用1.0版本,更高的版本修复了很多的bug,还提供了许多新特性,我们没有理由不去使用它们.在此介绍,在VS2008SP1中如何加载RichEdit4.1版本,甚至更高版本的也可以类似加载.原理:1.启动VS2008,新建一个基于CRichEditView的多文档视图Unicode工程,名称取为:CTest_Richedit:2.查看源代码…
工具 吾爱破解版本OD.IDA6.8 OD使用-动态分析 OD快捷方式 F2 下断点,也就是指定断点的地址F3加载一个可执行程序,进行调试分析F4程序执行到光标处 F5 缩小.还原当前窗口 F7 单步步入 F8 单步步过 F9 直接运行程序,遇到断点处,程序暂停 Ctrl+F2 重新运行程序到起始处,一般用于重新调试程序 Ctrl+F9 执行到函数返回处,用于跳出函数实现 Alt+F9 执行到用户代码处,用于快速跳出系统函数 Ctrl+G 输入十六进制地址,快速定位到该地址处 +/- 前一个后一…
全局变量 测试代码 全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建.全局变量是可以被本程序所有对象或函数引用.下面这段代码中将int.float.char变量定义在main函数之外. // 变量.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" //全局变量 // 整型 int a_nNum = 22; // 浮点型 float fNum = 2.5; // 字符型 char ch = 'A'; int main() { // 整型…