ida

IDA 与VC 加载符号表

与世无争的帅哥 提交于 2019-11-29 05:32:47
将Windbg路径下的symsrv.yes 拷贝到ida 的安装目录,重新分析ntoskrnl.exe, 加载本地的符号表 添加环境变量 变量名:_NT_SYMBOL_PATH 变量值:SRV*{$Path}*http://msdl.microsoft.com/download/symbols/ 将“{$Path}”替换为要存储pdb符号表文件的路径,比如:C:\PDB,在线的符号下载。 于是用IDA,或者在VC里写程序调试时,都会从网上自动下载符号表…… msvcrt.pdb,ole32.pdb,System.Data.pdb,ws2_32.pdb,WebDev.WebServer.pdb…… 但是VC运行程序时会自动下载完所有要用到的pdb,所以第一次启动会很慢,若想立即看结果,只要把网络断开就行了…… 来源: http://www.cnblogs.com/lanrenxinxin/p/4513464.html

IDA反编译STM32 Hex\\Bin文件成C代码(转)

杀马特。学长 韩版系。学妹 提交于 2019-11-28 15:45:17
IDA是一款功能强大的反编译软件,网上找了许久没找到它的使用教程,经过摸索可将STM32的hex文件进行反汇编,操作步骤如下,首先下载IDA Pro版破解软件,免安装。 IDA Pro下载链接:https://pan.baidu.com/s/14UyF40mzg17byfnlaWgPwQ 如果文件为bin文件,可使用bin转hex工具转为hex格式, BinToHex下载链接:https://pan.baidu.com/s/1u8ewOrs3H5LOfMUGioNEuw 提取码:20jr 1、打开解压后目录下的idaq.exe可执行文件,点击[File]-[Open]看到如下界面, 2、打开hex文件弹出提示 3、【processot type】选择小端ARM,点击【set】保存 4、按顺序点击图片中的1-2-3,设置好后点击所以【ok】关闭提示框 5、接下来将看到hex的文件内容,在CODE32下按d合并行 6、右击第二行跳到程序起始处 7、在跳转到的程序前面按c键 8、反汇编完成,在CODE32处按F5键将生成类C伪代码,见第12步 9、右击函数头选择【Graph view】可查看函数间调用关系 10、查看函数调用关系 11、在子函数中按【F5】键,生成反编译代码 12、反编译后的CODE32函数,该函数前面是stm32中启动文件中的一些时钟初始化函数

Ida pro gragh output batch mode

情到浓时终转凉″ 提交于 2019-11-28 10:53:53
问题 Can anyone let me know how we are going to output all the subroutine's graphs in batch mode suing IDC . i.e. I have 447 subroutine's and wanna be output them all and I would like to make sure I first retrieve all the routines address automatically, cuz by knowing the address I can simply use GenFuncCall . P.S: Is this the only cfg that I can get from Ida Pro given a binary dis-assembled file? 回答1: If you just want the address of all known functions in the IDB, you could use something like

Map文件从IDA到OD

旧巷老猫 提交于 2019-11-27 19:23:01
目录 什么是map文件 IDA与OD导出使用map文件 注意事项 使用OD载入导出的map文件 什么是map文件 什么是 MAP 文件? 简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。 在逆向分析的时候IDA可疑获得比较详细的map文件信息,同时结合OD动态调试将IDA中分析出的map文件导入到OD中可以起到事半功倍的效果。 IDA与OD导出使用map文件 ) 注意事项 使用IDA导出map文件时,在不需要Label信息的情况下,不要选中"dummy names"选项,否则在Ollydbg中使用LoadMapEx(by forever)加载时,会将OD的注释替换掉 对于 dummy names,IDA帮助中的解释是这样: Dummy names are automatically generated by IDA. They are used to denote subroutines, program locations and data. 假名字被艾达自动生成。他们是用来表示子程序、程序的位置和数据。 Dummy names have various prefixes depending on the item type and value

reversing.kr学习之路-ransomeware

大城市里の小女人 提交于 2019-11-27 13:13:15
ransomeware - writeup 题目来源 http://reversing.kr 题目知识点:upx + 花指令 + 堆栈不平衡 + exe特征码提取key 前言 文章只是记录一下自己在reversing.kr上学习CTF逆向的经历,如果文中出现什么技术错误,烦请各位大佬,在评论中指正。本人技术刚刚入门,菜鸟一枚,大佬勿喷啊~ 正文 首先在网站上下载附件,得到一个zip,里面包含了一个txt、一个exe和一个file。根据txt里面的提示,可以得到exe为加密程序,file为加密后的文件,并且file在加密前应该是一个exe文件。 接下来我就对exe文件进行了分析,使用PEID进行查壳发现,该exe使用了UPX进行加壳,这里大家可以使用ESP定律进行手工脱壳,而我嫌弃麻烦,直接使用UPX工具进行了脱壳,结果如下图。 在经过脱壳之后,exe文件就可以使用IDA进一步分析,但是不巧的是,在对main函数进行反编译时,出现了情况。 是的,你没看错,IDA意思是:“这个函数太大了,劳资分析不了”。 what?还有这种操作?作为一位菜鸟,还真是第一次看到IDA报这种错误。既然分析不了,那就去看看main函数的汇编代码吧。 好吧,出题人,!#@&%……#%,你开心就好啦!在main函数里面充斥了0x37195的无用代码,也可以称之为花指令,反正就是阻止IDA对其进行反编译

WinDBG - how to set all exception to be passed into app?

末鹿安然 提交于 2019-11-27 03:28:39
问题 How can I set all exceptions behavior to pass to application and not appear in debugger? I'm using IDA Pro 6.6 and WinDbg. 回答1: It's a bit awkward to do that for all exception types at once .foreach(exc {sx}) {.catch{sxd ${exc}}} What it does: {sx} : list all exception types (and current settings, which you actually don't want) exc : assign a variable .foreach(...) {...} : cut it into pieces of single words and execute a command sxd ${exc} : disable whatever is in variable exc .catch{...} :

Debug 输出字符串 调试信息

半城伤御伤魂 提交于 2019-11-26 22:34:04
使用工具: VC6.0,IDA 当我们要在程序中输出调试信息时,常常以字符串的形式来输出,例如: 1. printf ( "Some debug information here!\n" ); 这段代码在Debug和Release版下都输出调试信息,这不是我们所要的,一般地大家都会添加预编译指令,如下所示: 1. #if _DEBUG 2. printf ( "Some debug information here!\n" ); 3. #endif 这样就达到了在Debug版里程序输出调试信息,在Release版下不输出调试信息的目的。(在Release版里连printf函数都没有调用)可如果要在程序里的许多地方输出调试信息,若采用上面的方式会很麻烦; (至于为什么麻烦,可能就是不愿多敲几次键盘吧,呵呵。。。) 于是大家都想到写个输出函数,代码如下: 1. void printInfo( char *strInfo) 2. { 3. #if _DEBUG 4. printf (strInfo); 5. #endif 6. } 注:该函数只是演示用的,很简单,没有其他检查字符串功能。 在要输出调试信息的地方,调用如下语句就行: 1. printInfo( "Some debug information here!\n" ); 确实,在Debug模式下运行该程序,则输出如下信息: 1.

2019 红帽杯 Re WP

落花浮王杯 提交于 2019-11-26 02:02:33
目录 0x01 xx 1.准备 2.IDA打开 3.流程总结 4.脚本解密 5.get flag! 0x02 easyRE 1.准备 2.IDA打开 3.代码分析 4.get flag! 0x03 calc 1准备 2.IDA打开 3.流程总结 4.get flag! 0x04 childRE 1.准备 2.IDA代码分析 3.流程总结 4.获取未修饰函数名 5.置换运算 6.get flag! 0x05 Snake 1.查看DLL文件 2.DLL文件分析 3.爆破求解 4.get flag! 0x01 xx 测试文件: https://www.lanzous.com/i7dyqhc 1.准备 获取信息 64位文件 2.IDA打开 使用Findcrypt脚本可以看到 结合文件名是 xx ,因此猜测代码用到了xxtea加密方法 3.流程总结 因此,总的流程为: 判断输入的字符串的每个字符是否包含在"qwertyuiopasdfghjklzxcvbnm1234567890"中 取输入字符串的前4位字符,即"flag",扩展为16位,作为xxtea加密的秘钥key 将输入的字符串使用key加密,加密后的字符保存在字符数组v18,共24位字符 打乱v18数组,保存到v19数组中 将24位字符,每3位为一组,每一组异或值(具体看代码),得到新的加密字符串