自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ 语法时,编译器做了什么(1) new delete malloc free

直接看反汇编,手动翻译一下NEW31: Person* p = new Person();0040105D push 40040105F call operator new (004012b0)00401064 add esp,400401067 mov dword ptr [ebp-18h],eax0040106A mov dword ptr [ebp-4],000401071 cmp dword ptr [ebp-18h],000401075 je main+54h

2020-05-25 10:08:40 237

原创 NULL--print()

按我的理解是不能运行的//错误理解struct Person { int x ; void Fn_1() { printf("Person:Fn_1()\n"); } void Fn_2() { x = 10; printf("Person:Fn_2()%x\n"); } }; ...

2020-05-21 16:00:24 215

原创 wdb ctf re

一共有四道re题,两题apk,两题exeapk本菜鸡完全不会,过了过了然后就是signal这题就是一个 switch用switch把操作分离,然后用一串数据来实现类似指令的效果,从而实现功能首先找到输入字符串char a[] = { 0x0A,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x03,0x00,0x00,0x00,0x05,0x00,0x00,0x00,...

2020-05-11 10:55:38 236

原创 boot bios傻傻分不清

bios是加电完成后执行的指令,boot是BIOS执行完成后的指令(算是操作系统内部指令)即BIOS 加电到 选择系统, boot是选择系统之后(装了多个系统的师傅应该了解,开机到一半有个选择操作系统)想去了解系统加电过程,于是安装了一个qemu进行调试不能单步执行,n,s都不行系统停在了0xFFFF FFF0 //可以通过断点知道通过dump 内存 0x0000 0000 - 0x000F FFFF和 0xFFF0 0000 - 0xFFFF FFFF 发现大部分是一致的0x0000 ..

2020-05-09 10:34:36 4977

原创 随笔,代码隐藏基础

滴水逆向,2015-3-6随笔将代码段数据放置在全局变量区,使用指针去调用直接上手撸代码,访问出错是DEP保护没关(保证数据区代码不可执行)那就关掉吧,属性->链接器->高级->数据执行保护 选否此时 int (*p)(int); p = (int (*)(int))(&a); int b = (*p)(3); print...

2020-05-07 13:35:35 149

原创 c++ string 源码分析

菜鸡的我当酱油去了ctf,re的第一题就把我整懵了ida警告Unexpected entries in the PLT stub.The file might have been modified after linking.大致就是PLT 被修改了解决方法我能想到的有二:一:修复PLT表//本菜鸡不会二:直接动调//莽就完事了跟到源码里使用了一堆0x20大小的栈空间//我刚开始以...

2020-05-06 10:52:38 3883

原创 又是菜鸡的记录日志,局部变量大小,坑人的编译器

其实主要是想说明编译器太坑了(以下都是在32位环境下)刚开始使用的是vs2010,一个int a ,缓冲区都要增大0xC我人都傻了,两个int 增大0x18, char c[12] 增大0x20一个double 直接占用0x10 ,值放在0x4-0xC 形成 4 8 4疯狂的浪费空间,我也不晓得原因,先做个记录帖,以后再翻案吧然后再装一个vc6,就完全符合我的预期局部变量(定义...

2020-04-26 13:38:55 166

原创 逆向基础,函数多级调用

看到滴水逆向的时候C语言基础于是写了一个int Plus3(int a, int b, int c, int d ,int e){ return Plus2(a,Plus1(b,c),Plus1(d,e));}这样的函数,其实就是加法运算但是跟着汇编一看还是挺好玩的,首先是Plus1(d,e)就正常push(压入参数),call(跳转),add(外平栈)...

2020-04-21 14:30:50 243

原创 模拟栈时遇到的坑

看滴水逆向的时候,模拟栈不是简单的很,直接上手习题模拟压入五个数,五个DWORD不过瘾啊,皮BYT一下,压入DWORD,DWORD,WORD,BYTE,BYTE炫个技给自己看喽mov ebx,0x6FFB3Cmov edx,ebx//关键来了mov dword ptr ds:[edx],0x11111111sub edx,0x4mov dword ptr ds:[edx...

2020-04-12 22:23:39 108

原创 CPU处理加法的简单理解

在看滴水逆向时,听到了CPU处理加法的过程大致为//为了简单使用四位,便于理解__int4 add(__int4 X,__int4 Y){ while(1) { R = X xor Y; T = X and Y; T = T <<1; if( 0 == T) ...

2020-04-10 11:31:47 497

原创 buuctf-re-刮开有奖

什么都别说,上来就是直接ida(如果函数不对就是有壳)很快乐,没有壳直接在winMain上F5,DialogBoxParamA(hInstance, (LPCSTR)0x67, 0, DialogFunc, 0);众所周知,对话框的处理函数是自己传进去的也就是 DialogFunc点进去找到了{ MessageBoxA(hDlg, "U g3t 1T!", "@_...

2020-03-13 00:40:37 750

原创 puuctf-re-不一样的flag

直接上ida 函数都正常,没加壳找到main函数直接f5看了一下代码逻辑拷贝字符串*11110100001010000101111#到esp+17h定义v4 =[esp+30h] ;v5 =[esp+34h]v6为用户输入v4[i] <0 || v4[i] > 4 exitv6<1 ||v6>4 exitv6 =...

2020-03-12 12:18:37 362

原创 编译器将除变成乘法原理

除法运算运算效率在四种基本运算中最慢,是乘法的20倍左右所以在被除数为固定值时(重要),编译器会把除法优化乘法。设代码 a/b = c b是常量设 b*k = 2^n 2的n次直接用移位运算即可a *2^n/ (b*2 ^n) = ca * b *k/b = c* 2...

2020-01-10 19:21:17 854

原创 逆矩为什么能求线性方程(多元一次)的解

单位矩阵//只有主对角线为1的矩阵1 0 00 1 00 0 1特点:任何矩阵乘以标准矩阵还是本身首先利用线性方程写出矩阵A(未知数系数) 矩阵B(值)求逆矩 A-1B * 单位矩阵 = B即 B* A * A-1 = B设...

2020-01-09 14:38:34 302

原创 数据包发送全过程

都在图里

2019-04-06 17:53:02 1609

原创 QT 对于按钮实现的思考

突然想知道按钮是如何被响应的1.在操作系统中假设两个应用窗口重叠了一部分例如:此时我点击后面一个窗体 就会将后面的窗体置前据说是使用射线技术,也就是说 ,以鼠标当前坐标(鼠标中断,传入坐标和按下的按钮(左键,右键,扩展键))然后我猜测是根据一个栈,例如应用程序栈,从栈顶开始搜索,如果当前窗体被点击,即将被点击的窗体移动至栈顶,刷新屏幕,不再往下传递点击事件那

2017-10-20 21:56:38 248

原创 红黑树剖析

场景:在解决A*寻路算法时,需要一个能支持大量插入和删除(查找)操作的数据结构链表和数组都有缺陷,这时就想到了树,将树设置为左子树小于自身,右子树大于自身,这时查找,插入,删除都比较快捷,但是如果插入数据特例例如递增的数据就会导致效率比链表还差理所当然想到自我平衡的树 AVL树和红黑树(没看到2-3树)然后再思索了一下,发现维护AVL树的代价比较高,感觉到插入的

2017-09-22 16:52:32 254

原创 Last non-zero Digit in N!

先来说说思路: 首先这个数非常之大 所以我先用char 类型的字符数组来存储将其转化为整形大整数数组lctoli  //long char to long int然后大数除小数的模板是网上的之后我们先来看一看数据 假设 输入281 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 的

2016-07-22 14:31:52 390

原创 1420 (A^B)%C

#includeint Calculate(_int64 a,int b,int c);int main(){ int cycle_index; while(scanf("%d",&cycle_index)!=EOF) { while(cycle_index--) { int a,b,c; scanf("%d%d%d",&a,&b,&c);

2015-10-24 22:57:48 268

原创 Doing Homework again 杭电 1789

#includevoid bubble_sort(int score[],int number);int expiry_day[1100];int reduced_score[1100];int can_got_score[1100];int main(){ int number_of_test_cases; int number_of_subject; w

2015-10-14 15:27:09 257

原创 杭电 1009

#includevoid bubble_sort( double unit_price[], int groups);double unit_price[1100];int gross_price[1100];int amount[1100];int main(){ int weight_of_cat_food; int groups; while(scan

2015-10-13 07:20:04 531

原创 杭电 2097

#includeint judge_10(int num);int judge_12(int num);int judge_16(int num);int main(){ int num; while(scanf("%d",&num)!=EOF) { if(num==0) break; int outcome_10=judge_10(num); int outc

2015-10-10 18:51:19 304

原创 大概是原创吧,杭电2054 A==B?

#include#includeint find_First_Not_Zero(char a[]);void del_PostZero(char a[]);int judge_dot(char a[],int i);int main(){     char a[50000],b[50000];     while( scanf("%s%s",a,b)!=EOF )

2015-10-09 22:35:44 363

空空如也

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

TA关注的人

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