自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 关于Reverse之内存转储寻IAT

软件中使用到dll的导入函数的时候,多半使用jmp指令执行API函数。由此,可以使用binary search功能,寻找FF 25,即可快速找到IAT地址。使用ImpREC有时候的智能修复方式并不是很好用,这就需要我们手动寻找IAT的RVA以及size。

2023-09-26 14:53:13 80

原创 PE文件-SectionAlignment

关于SectionAlignment解读:类似于disk区装载到memory区,装载的区域标签必须以整数结尾的意思,例如1000,就意味着只能是[ImageBase]~[ImageBase+1000]的区域可以使用。

2023-09-18 15:23:41 101

原创 Reversewithlena-01

reversewithlena-01

2023-09-18 11:19:52 76

原创 反汇编——UPX调试

快速找到UPX文件POPAD指令

2023-09-13 19:48:43 172

原创 反汇编学习——RVAtoRAW

关于《逆向工程核心原理》中notepad.exe的地址转换,在此将思路梳理,并完成练习。计算7604的文件偏移:7604-1000(Imagebase)+400(观察可知,7604位于text区)

2023-09-12 19:00:52 60

原创 反汇编学习——PE文件结构

4.characterristics,标识文件的属性。IMAGE在PE文件中出现,它是“映像”的意思。说明磁盘中的文件和内存中的文件并非完全相同。故将加载到内存中的PE文件加以IMAGE以标识。DOS头,DOS存根,NT头,节区头,节区。(节区又包含text,data,rsrc)节区头由IMAGE_SECTION_HEADER构成。word类型,即一个字,又两个字节构成。dword占据4字节。其中,Rva指磁盘文件地址,Raw指内存文件地址。e_lafnew,nt头的偏移。long类型,占据4字节。

2023-09-12 15:10:58 182

原创 Ollydbg学习

在语句的上一句call函数处设置断点,运行程序,停在了断点处,继续执行程序,发现它返回了00402C17地址,就是需要动手脚处函数的地址。可以确定,我们找到了代码的存放地址。接下来需要确定函数的参数有几个,以便返回正确的栈地址。首先碰到第一个问题:去除所有的Nag。关键在于寻找一个函数代码的起始地址。后续根据书上的示例和自己做的过程仔细对照,发现可以从栈中寻找。图中是正在进入的函数语句,需要寻找它的代码位置。最终可以确定,应该返回4栈地址以跳过函数。改写为retn 4。碰到一个具体的例子,在此记录一下。

2023-09-11 21:43:29 39

原创 汇编转C——学习逆向工程

类似PUSH块表示的是汇编代码块,最后一列表示注释块。代码块中用“|”进行分割,以表示三列。前一二列混在一起,表示地址块和16进制块。本次学习所用案例为abexcm1.exe,如果有需要可以在社区搜索即可。abexcm1.exe是用汇编写出的程序,所以汇编代码非常简洁,开头就能见到函数功能。可知,函数调用参数的顺序和参数入栈的顺序相反。

2023-09-11 10:53:08 1500 1

原创 C++学习之函数

关于函数的返回值问题:某些时候我们希望函数能够返回多个值同时又不希望新定义一个数据类型,那么,就可以使用非常量引用,函数执行完后变量的值就隐式地返回了。定义函数的时候,如果不希望对传入的对象做出改变,可以使用const string修饰符,保证了函数的执行安全。

2023-09-06 14:14:18 19

原创 C++学习之表达式

使用新版强制类型转换:static_cast<type>,避免使用(type)降低代码可读性。++i则返回i自增操作之后的值。如果不必要,尽量不适用i++。因为这是对资源的一种浪费。关于++i和i++的区别:i++返回i原本的值,再进行自增操作;对底层的const类型多加一层const_cast<type>。

2023-09-06 11:08:54 28

原创 C++学习之迭代器和数组

因此,如果仅进行只读操作,则使用cbegin和cend比较保险:因为不管对象的类型是什么,其迭代器返回类型都是const_iterator。关于初始化的问题,string类的数组不论在数组内还是在数组外,统一被初始化为空串。表示一个名为ptr的引用,引用对象为大小为十个元素的数组,其元素类型为int。表示ptr是一个引用,对象为包含十个元素的arr,其类型是int的指针。需要注意的是,end返回的是容器中最后一个元素的后一个位置,本身为空。表示ptr是一个指针,指向有十个元素的数组,数组元素类型是整型。

2023-09-06 10:16:54 68

原创 C++学习之for的新使用方法

auto代表的是类型推断,省去了查看类型名的麻烦。当然,若想要在循环的时候改变对象的内容,则可以用。

2023-09-06 09:17:11 40

原创 C++学习

但是,const int *p和int const *p有区别。可以理解为去掉类型修饰符,就近原则从右开始匹配const。即为const int *p中,*p不能被修改;int const *p中,*p不能被修改。而int * const p中,p不能被修改。说到const int和int const,修饰p没有区别。

2023-09-05 19:40:13 41 1

原创 C++学习记录

原来八进制数的表示使用0来开头。如012表示十进制的10.

2023-09-05 18:48:46 38 1

原创 C++ learing

''单引号所括住的内容严格来说是转换成int类型,表示的是单个的字符,而""双引号所括住的内容表示字符串,是char的类型,可以对变量赋“”的值。使用String的过程中,出现了和学习C不一样的地方。同时出现的还有''和""差异问题,记录一下。还有一个命名方法的差异。C++中,可以使用String s1("Clannad");

2023-09-04 15:07:33 38 1

原创 Python Spider learning

爬取数据后期处理中正则表达的应用

2023-08-28 10:31:47 60 1

原创 VScode配置C++环境

配置vscode环境

2023-04-14 20:33:39 166

原创 算法分析与设计

算法分析与设计

2023-03-20 18:51:38 40

原创 数据结构——图的最短路径

数据结构之图的最小路径

2022-11-06 12:00:33 304

原创 数据结构——图的遍历

图的遍历

2022-11-06 11:55:34 109

原创 数据结构——平衡二叉树

平衡二叉树的构造以及遍历

2022-10-23 15:00:08 349

原创 数据结构——霍夫曼编码

霍夫曼编码,栈的实现。

2022-10-20 15:26:19 844

原创 数据结构——二叉树的遍历

二叉树的遍历

2022-10-18 09:41:47 84

原创 数据结构——字符串匹配的kmp算法

字符串匹配的kmp算法

2022-10-18 09:36:52 199

原创 数据结构——火车车厢重排

火车车厢重排

2022-10-07 19:09:33 1405 1

原创 数据结构——杨辉三角

杨辉三角的C语言实现,使用循环队列

2022-10-05 14:34:19 1106

原创 数据结构——栈

数据结构括号匹配

2022-10-04 17:31:56 114

原创 数据结构——商品链表更新

商品列表的更新——数据结构的练习

2022-10-04 15:14:46 339

原创 数据结构——删除

指针使用,链表

2022-10-03 18:18:11 504

原创 数据结构学习——循环链表

数据结构之约瑟夫问题的求解。

2022-09-28 17:02:41 66

原创 数据结构学习——顺序表插入

数据结构插入元素的操作

2022-09-25 18:36:53 373 1

原创 学习C语言

总结,C语言内不能使用.的形式,指针需要用->,且函数声明的形参内必须用*,使用函数的时候应该用&。总结自己的经验,在此开帖。以下代码是做线性表删除x元素操作的。

2022-09-25 13:32:46 282

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除