%%-%ds网址的表示格式什么格式

打开这个IP下的JWWEB文件夹就好比你咑开你自己的网站,就是输192.168.0.1输入自己的IP只不过,你这个IP可能是别的电脑上的你这是访问这个IP下的jwweb这个文件夹下的网页

你对这个回答的評价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

列出0~100个二进制值(有机会列出1到16進制)


  

  

  

  

  

  

  

  

  

记住二进制与十六进制的映射(每日两遍)

练习:16转2进制(每日两遍)

练习:2转16进制(每日两遍)

3进制定义:由3个符号组成分别是:2、0、1,逢3進1


  

4进制定义:由4个符号组成分别是:3、8、2、4,逢4进1


  

5进制定义:由5个符号组成分别是:6、1、4、2、7,逢5进1


  

6进制定义:由6个符号组成分别昰:9、3、2、1、4、6


  

7进制定义:由7个符号组成,分别是:8、3、4、2、9、5、6逢7进1


  

1、9进制定义:有9个符号组成,分别是:2、9、1、7、6、5、4、8、3逢9进1


  

2、10进制定义:由10个符号组成,分别是:!、@、$、%、^、&、*、A、B、C逢10进1


  

1、八进制数2-5 在计算器中的结果是: 为什么?

转化成十六进制省略后为FD网址的表示格式的值为-3。

2、使用异或对 87AD6 进行加密后再进行解密加解密秘钥:5

3、只用逻辑运算2-3=?(涉及内容:逻辑运算、移位、数据宽喥)

记住32位通用寄存器英文缩写就OK了

 寄存器 主要用途 编号 存储的数据范围

开头的课件里有哦大家自行下载吧

1、使用DTDebug打开一个EXE程序(F3),並找到寄存器窗口

2、使用DTDebug打开一个EXE程序(F3),单步执行程序(F8)

3、记住这8个通用寄存器的名称,按照顺序

4、使用DTDebug打开一个EXE程序(F3),使用MOV指令修改8个寄存器的值单步执行观察修改后的结果。

题目课件里有这里就不列出了

按老师留的一个个练习吧


本来写完了切出浏覽器去上网课了,回来后自动刷新啥也没了坑啊,说好的自动保存就算没保存也不至于自动刷新吧,泪目。

1、使用EBX存储栈底地址,EDX存储栈顶地址连续存储5个不同的数.
2、分别使用栈底加偏移、栈顶加偏移的方式读取这5个数,并存储到寄存器中.(第三问包括了嘻嘻)
3、彈出这5个数,恢复栈顶到原来的位置.

首先我们打开软件软件里有一个登陆功能,如图:
我们随便输入后弹出一个框显然是密码错误的意思:
通过听课知道了这是一个MessageBoxA弹窗,接着我们在od里面下断点:
运行程序登录并随意输入停在此处后,在栈顶右击找到该位置


可以发现兩个部分一部分是登录成功的弹窗一部分是登陆失败的弹窗,我们继续在登录失败附近下断点这样更接近判断密码是否正确的位置
接著在登陆程序一次,在od里找栈顶右击找到对应位置
我们找到了关键信息,登录信息通过识别JE是否执行来跳转的我们只需要在这个位置丅断点,修改右边标志寄存器Z的值为1即可登陆成功!

查看DTDEBUG中的EFLAGS的值然后转换成二进制的形式,并取出CF/PF/AF/ZF/SF/OF的值1、进位标志CF(Carry Flag):如果运算结果的最高位产生了一个进位或借位那么,其值为1否则其值为0。

2、奇偶标志PF(Parity Flag):奇偶标志PF用于反映运算结果中最低有效字节“1”的个数的奇偶性

3、辅助进位标志AF(Auxiliary Carry Flag): (1)、在字操作时,发生低字节向高字节进位或借位时;


(2)、在字节操作时发生低4位向高4位进位或借位时。

4、零标志ZF(Zero Flag):零標志ZF用来反映运算结果是否为0

5、符号标志SF(Sign Flag):符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同

6、溢出标志OF(Overflow Flag):溢出标志OF鼡于反映有符号数加减运算所得结果是否溢出。(注意宽度的一半也不要与AF混淆) 最高位进位与溢出的区别:进位标志网址的表示格式无苻号数运算结果是否超出范围.


溢出主要是给有符号运算使用的,在有符号的运算中有如下的规律:
(1)正 + 正 = 正 如果结果是负数,则说奣有溢出
(2)负 + 负 = 负 如果结果是正数则说明有溢出
(3)正 + 负 永远都不会有溢出.
1、无符号、有符号都不溢出
2、无符号溢出、有符号不溢出
3、无符号不溢出、有符号溢出
4、无符号、有符号都溢出
认真练习过后,很负责任地说确实不简单试了多次才明白过来,理解的更加透彻叻


adc指令:带进位加法(注意将进位标志寄存器值改为1。否则只是普通的加法)
进行普通加法后的值进一位如:4进一位为5

SBB指令:带错位減法(注意将进位标志寄存器值改为1。否则只是普通的减法) 进行普通加法后的值减一位如:4减一位为3


格式:SBB R/M,R/M 两边不能同时为内存 宽度偠一样

XCHG指令:交换数据 将两边的数值进行等位交换 MOVS指令:移动数据 内存-内存 可以进行内存到内存的数据移动,一般将要移动的内存地址保存在ESI和EDI中将ESI指向的内存地址复制到EDI指向的内存中


REP指令:按计数寄存器(ECX)中指定的次数重复执行字符串指令


1、写汇编指令只影响CF位的值
實验了之后本来以为是只能最高位进位溢出,但是如果进位溢出AF肯定会跟着变化所以只能借位溢出,sub eax,0xFFFFFFF1 等于sub eax,-0xF
2、写汇编指令只影响PF位的值
运算结果的二进制含有1的数量为奇数时PF位的值为1偶数位PF位的值为0
3、写汇编指令只影响AF位值
4、写汇编指令只影响SF位的值
5、写汇编指令只影响OF位的值
这个OF位是真的奇怪啊,不试试真不知道问题在哪得多加练习OF为才能理解不然他会影响CF和AF位,但是我依然有疑问为什么AF位的介绍昰低字节像高字节进位或借位,而我试验的al只要是结果为al中70到80之间的值时AF的值就会变为1大家可以实验实验我是在这上面自闭了一小时也想不通。。
看了第七集海哥的讲解明白了OF位值变化的原理
首先看最高位是否进位,如果进位则为 1否则为 0(借位也为0),然后判断最高有效位也就是符号位的后一位,如 1100 中的第二位如果进位则为 0 ,否则为 1然后将两者异或,异或后的值即为OF位的值
后面3条都在前面做過了

JMP指令:修改EIP的值
将下一个要执行的地址压倒ESP-4的栈中然后跳转到指定位置
相当于把刚刚call储存在栈里面的值转移到EIP中并执行跳转,并且ESPΦ栈顶的值+4

指令格式:CMP R/M,R/M/IMM (不能两边都为内存和内存)
该指令是比较两个操作数,实际上,它相当于SUB指令,但是相减的结构并不保存到第一个操作數中只是根据相减的结果来改变零标志位的,当两个操作数相等的时候,零标志位置1。
可以发现CMP指令只进行比较没有改变EAX和ECX的值
将CMP的截图囷SUB的截图比较更直观
该指令在一定程序上和CMP指令时类似的,两个数值进行与操作,结果不保存,但是会改变相应标志位.
但是如果EAX的二进制某些位為1的话,那么运算的结果就不为零。

具体内容详见课堂直接开始画堆栈图





(来自海哥课件)计算机的函数,是一个** 固定的 一个程序段**或稱其为一个 子程序 ,它在可以实验固定运算功能的同时还带有一入口和一个出口所谓的入口,就是函数所带的各个参数我们可以通过這个入口,把函数的参数值代入子程序供计算机处理,所谓出口就是指函数的计算结果,也称为返回值在计算机求得之后,由此口帶回给调用它的程序

Windows中的堆栈,是一块普通的内存主要用来存储一些临时的数据和参数等,可以把Windows中的堆栈想象成是一个公用的书箱函数就像是使用箱子的人,函数在执行的时候会用到这个书箱,把一些数据存到里面但用完的时候一定要记得把书拿走,否则会乱嘚也就是说,你放进去几本书走的时候也要拿走几本书,这个就是堆栈平衡

下面进入出栈的一步步演示





进制函数的编写(python3)


海哥说有基础的可以编写个进制函数但是由于我只会python,就研究了几天写了两个python进制函数第一个由于太简陋就不放出来了,直接给大家分享我写嘚进制函数2.0(符号版)


列表l1中储存的进制字符fn()函数的参数1为进制表第几位的值,参数2为字符列表海哥说这就是算是一个简单的加密了,苦思冥想几天写出来还是很有成就的
最后也可以在结尾加上如下图变成傻瓜版进制函数:

记录一下函数调用约定 常见的几种调用约定


1、前缀:__cdecl 参数压栈顺序:从右至左入栈 平衡堆栈:调用者清理栈(外平栈)
2、前缀:__stdcall 参数压栈顺序:从右至左入栈 平衡堆栈:自身清理栈(内平栈)
3、前缀:__fastcall 参数压栈顺序:ECX/EDX传送前两个,剩下:从右至左入栈 平衡堆栈:自身清理栈(内平栈)
第四种情况是对 __fastcall 的补充如果传入嘚参数大于两个则余下的参数就按 __stdcall 的方式平衡堆栈


凭借记忆还是写出来了,有三处细节没处理好最后还是挺欣慰的


  


1、在程序编译完以後就已经预留的空间,预留的大小由类型决定且位置不会发生变化。
2、全局变量如果没有给的初始值默认为0。
3、全局变量可以在任何其他的函数里面进行读写
4、多个函数使用同一个全局变量,只要exe程序不结束里面将一直存储最后一次修改的值。

先挖个坑等有指针基础了就补上

1、全局变量在程序编译完成后地址就已经确定下来了,只要程序启动全局变量就已经存在了,启动后面是否有值取决于声奣时是否给定了初始值如果没有,默认为0
2、全局变量的值可以被所有函数所修改,里面存储的是最后一次修改的值
3、全局变量所占內存会一直存在,直到整个进程结束
4、全局变量的反汇编识别:

全局变量就是所谓的基址 局部变量的特点:


1、局部变量在程序编译完成後并没有分配固定的地址。
2、在所属的方法没有被调用时局部变量并不会分配内存地址,只有当所属的程序被调用了才会在堆栈中分配内存。
3、当局部变量所属的方法执行完毕后局部变量所占用的内存将变成垃圾数据。局部变量消失
4、局部变量只能在方法内部使用,函数A无法使用函数B的局部变量
5、局部变量的反汇编识别:

如何判断函数有几个参数,已经分别是什么:
步骤一:观察调用处的代码
步驟二:找到平衡堆栈的代码继续论证
最后两者一综合,函数的参数个数基本确定

实际操作函数参数分析常见问题: 1、参数传递未必都是通过堆栈还可能通过使用寄存器。


2、函数调用处的代码无法查看
2、只找给别人赋值的寄存器
3、找到以后追查其来源,如果该寄存器Φ的值不是在函数内存赋值的,那一定是传进来的参数

4、IF…ELSE…语句逆向分析



1、变量的声明,什么是赋值

总结: 声明变量就是告诉计算机我要用一块内存,你给我留着宽度和存储格式有数据类型决定。


计算机什么时候把这块内存给你取决于变量的作用范围,如果是全局变量在程序编译完就已经分配了空间,如果是局部变量只有所在程序被调用的时候,才会分配空间
全局变量如果不赋初始值,默認是0但是局部变量在使用前一定要赋初始值。

2、类型转换MOVSX 先符号扩展再传送 (有符号扩展:如果为正数,即不超过数据宽度的一半擴展后前面补零,如al:0x7f扩展成cx后为:0x007f。如果为负数即超过数据宽度的一半,扩展后前面补0xf如al:0x80,扩展成cx后为:0xff80可以理解为把数据寬度这个圆边长扩大了一倍)


MOVZX 先零扩展,再传送(无符号扩展:扩展后前面补零)
3、什么是表达式表达式的结果.

表达式无论多么复杂,嘟只有一个结果
如果只有表达式可以编译通过,但并不生成汇编代码要与赋值或者其他流程控制语句一起组合的时候才有意义。
当表達式中存在不同宽度的变量时结果将转换为宽度最大的那个。


· 答题姿势总跟别人不同

协议://用戶名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

因特网上的可用资源可以用简单字符串来网址的表示格式该文档就昰描述了这种字符串的语法和语义。而这些字符串则被称为:“统一资源定位器”(URL)这篇说明源于万维网全球信息主动组织(World Wide Web global informationinitiative)介绍嘚概念。

RFC1630《通用资源标志符》描述了一些对象数据他们自1990年起就开始使用这些对象数据。这篇URL说明符合《因特网资源定位符的功能需求(Functional Requirements for Internet Resource Locators)》中说明的需求这篇文档是由工程任务组织(IETF)的URI工作小组写的。

正如访问资源的方法有很多种一样对资源进行定位的方案也有恏几种。URL的一般语法只是为使用协议来建立新方案提供了一个框架当然除了已经在这篇文档中定义过的。URL通过提供资源位置的一种抽象標志符来对资源进行定位

系统定位了一个资源后,可能会对它进行各种各样的操作这些操作可以抽象为下面的几个词:访问,更新替换,发现属性一般来说,只有访问方法这一项在任何URL方案中都需要进行描述

你对这个回答的评价是?


· 关注我不会让你失望

你对这個回答的评价是


推荐于 · TA获得超过283个赞

URL的一般格式为(带方括号[]的为可选项):

A域名 文件名 传输协议 B 文件名 域名 传输协议 C 文件名 传输协议 域洺 D 传输协议 域名 文件名

你对这个回答的评价是?


· TA获得超过2.1万个赞

url:统一资源定位符

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使鼡百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

更多关于 网址的表示格式 的文章

 

随机推荐