学习笔记 3
1.immlabel插件的原理?
利用od的标签功能,通过找到对应内容的地址,加上标签,使出现使用该内容的位置,有标签标注
2.od搜索不到字符串,但IDA能搜索到字符串原因?
(1)od搜索中文字符串一般是使用大佬编写的插件,这个插件的搜索中文字符串,是通过从模块基址开始遍历,找到mov ,lea,push指令,判断后面的立即数是否以\0为结尾,就把包括\0在内的前面内容当成字符串
(2)在部分程序中字符串被存储在结构体中,其16进制编码格式有所变化,以字符串的形式读取的内容与本质内容出现区别,导致od搜索不到字符串
(3)而IDA对字符串的搜索有所不同,IDA直接对PE文件进行静态搜索,所以能直接搜索到字符串。
(4)同理(3),对于某些软件的加密,其字符串可以通过IDA进行搜索,那么有可能连记事本也可以搜索到其字符串,从而被破解。
3.如何让IDA和od都搜索不到字符串?
(1)使用工具编辑一个注册失败的16进制编码
(2)编辑程序,放入IDA和od,发现搜索不到“注册失败”的中文,但程序运行能打印“注册失败”
(3)原因在于该代码运行时,str内的char字符被以临时变量的形式存储在堆栈中,而od和IDA的搜索所针对的位置不是堆栈,无法生效,导致搜索不到。
(4)假如char数组str定义为全局变量,那在程序的存储位置就不是堆栈,od就能搜索到其位置。
4.当易语言程序运用线程输出弹窗时,如何定位关键点?
(1)易语言程序代码
(2)在od中的运行情况,直接通过定义messageboxA的方法无法找到关键点,需要知道易语言的线程特征码
(3)找到特征码,右键->查找参考->选定命令,双击非红色部分
(4)跳转到线程内部,call位置的函数 ,选中部位用于传入线程地址参数,启动线程
(5)爆破:找到if对应je指令,对je指令右键,二进制,nop,单步运行弹出成功
评论 (1 条评论)