随笔分类 - 逆向
摘要:偏移 说明 00 指向SEH链表指针 04 线程堆栈顶部(地址最小) 08 线程堆栈底部(地址最大) 0c SubSystemTib 10 FiberData 14 ArbitraryUserPointer 18 FS 段寄存器在内存中的镜像 20 进程PID 24 线程ID 2c 指向线程局部存储
阅读全文
摘要:数组是相同类型数据的集合,以先行方式连续储存在内冲中 而指针只是一个保存地址值的4字节变量。 数组在函数中 数组定义在函数中时,如果没有其他声明,数组为局部变量 数组在内存中时线性连续的,数据排列顺序由低地址到高地址,数组名是数组的首地址 反汇编之后,数组很像是连续定义了好几个变量,区分他们的方法
阅读全文
摘要:变量类型 作用域 可访问 全局变量 进程作用域 整个进程可访问 静态变量 文件作用域 当前代码文件可访问 局部变量 函数作用域 函数内可访问 内变量 块作用域 只能在内访问 块作用域举例 全局变量和局部变量的区别 全局变量 在PE文件中,一般是.data节表 在程序执行之前就已经存在了(有内存地址)
阅读全文
摘要:栈帧的形成和关闭 当栈顶指针小于栈底指针时就形成了栈帧 (esp < ebp) 需要注意的是,栈的增长方向是地址减小的方向 进入到新函数的时候,就会相应生成栈帧,当结束的时候,就会清除使用的栈空间(栈平衡) Debug版本中,在函数退出的时候,会检查esp是否等于ebp以此检查栈平衡。若不平衡则调用
阅读全文
摘要:#include <stdio.h> //指针传值 void addOne(int *a) { printf("%8p\n",a); *a = *a+1; } //引用传值 void addOne2(int &a) { printf("%8p\n", &a); a++; } int main() {
阅读全文
摘要:概述 学习任何一个技术,都是会遇到各种问题的,那么现在就有 sp-analysis failed 问题描述 IDA在载入文件之后,出现如下注释 但是可以正常F5,不过只有部分代码 告诉我栈顶指针分析错误,联想到现在分析的代码,加壳都没有,直接用VC++ 6.0写的,会有花指令一类的东西吗? 因为出现
阅读全文
摘要:概述 因为奇怪的考试要求,最近经常有奇怪的问题,例如为什么(++a)+(++a)=14 发现反编译出汇编之后,就能解释很多奇怪的问题 Objdump 一次意外知道了linux上面的 objdump 可以方便的看out文件的汇编代码,所以 这里记录下来,不然每次都得查 默认 objdump -d pr
阅读全文
摘要:概述 弄到了一个熊猫烧香的样本,Delphi程序,和前面的彩虹猫根本就不是一码事儿,这次只能完全看汇编代码了,不过伪代码可以帮忙分析循环条件什么的。 环境工具: win7 x64 , 火绒剑 IDA OD IDR PEID Delphi的程序 但是以前没有写过也没有逆向过Delphi程序 直接运行
阅读全文
摘要:概述 今天有学妹问我,下面这个代码为啥结果是14 int a=5; printf("%d\n",(++a)+(++a)); 我一看,第一眼看上去,结果应该是13才对啊... 也即是 5自增1 = 6 6自增1 = 7 最后 6+7 = 13 但是为啥是14呢,题目错误了嘛? 验证 emmmm....
阅读全文
摘要:概述 花费了好长时间,总算弄清楚了PE文件 学完了之后,总的感觉对PE文件的学习,就是学习各种各样的结构体,以及各种结构体关系 正是因为学会不易,所以做这个记录,基本是各种结构体的定义说明,已经找函数的方法什么的,,,以便下次忘记了能很快想起来 PE文件基本结构 PE内存映射关系 MS-DOS 头部
阅读全文
摘要:彩虹猫分析 彩虹猫分析过程,一天半时间算是分析完了,有一部分的代码IDA没有显示出来,所以得动态分析 概述 程序分为三种启动方式 一种是不带任何参数的启动 第二种是带 /main 参数启动 第三种是带/watchdog参数启动 这部分是每个启动方式都会执行的代码 通过GetSystemMetrics
阅读全文
摘要:开始 逆向过程中发现函数指针出现次数很多,所以 还是要认真理解一下函数指针 #include <stdio.h> int addNum(int i,int j) { return i + j; } int main() { int(*addNumP)(int, int) = NULL; //定义一个
阅读全文
摘要:开始 马上就要开始考教资了,现在开始准备学习,然后日常翻翻B站,发现了感觉不错的课程。但是电脑端不能下载怎么办? 其实之前有用过下载工具的,不过此时找不到了,那就网上下载一个,结果发现需要关注公众号,哎?我不想关注,感觉作者也不容易,我于是就关注了,并且请求一个验证码。 结果验证码不好使,死
阅读全文