- 博客(26)
- 收藏
- 关注
原创 IAT数组一定要指向 Hint/name吗
不用,只要不为0就好了,IAT是由PE装载器填入地址的,不用自己填Hint值一定要为ordinal吗?有函数名的可以随便写,没有的要和ordinal对应
2020-12-23 14:38:12
187
1
原创 C语言 L“hello“的含义
在网上检索出来的结果是宽字符,unicode,但我还是不理解,所以我上手敲了代码#include <stdio.h>#include <stdlib.h>int main(){ char * a = L"hello"; printf(a); return 0;}执行结果:明明a指向的是hello,为什么只输出了h为了一探究竟,我使用了Ollydebug查看内存情况发现每个字符后面都加了个零而以Unicode
2020-12-08 13:58:13
1076
原创 逆向核心原理:第二十章 内嵌补丁 与教科书不同的另一中打补丁方式2
上一次我介绍了一种自己调试patchme的独特方式,今天介绍另一中方法上次的网址 https://www.cnblogs.com/czlnb/p/13996202.html代码结构:这一次我们要插入的地方是代码块4的末尾,因为这个地方已经运行了解压程序,但是没有运行校验程序,所以我们要修改代码块5的校验程序,以跳过它。但是代码块5,是被加密的,所以要在代码块4中用代码来修改代码块5总结一下 完成数据块A中字符的修改需要3步1.将代码块4复制到空白区(这样就有空间插入...
2020-11-18 12:14:52
191
原创 逆向核心原理:第二十章 内嵌补丁 与教科书不同的另一种打补丁方式
逆向核心原理:第二十章 内嵌补丁 与教科书不同的另一中打补丁方式 在逆向核心原理中,第二十章的实验是调试patchme 见下图1 图1最后实验的结果:书上的思路是修改跳入OEP的jmp指令,以此来插入自己的代码,但是这部分的指令是被加密过的,所以修改它时要手动做加密,十分麻烦。所以我想出了一个更好的办法:因为我们要插入字符串,而字符串是被加密的,而且后面还有校验检查代码是否被改动,所以我们的代码一定要插入在解密和校验之后运行的地...
2020-11-17 21:01:37
215
原创 OllyDbg 出现实际运行的汇编代码与显示出来的不一致的问题?或 OllyDbg执行单字节数据?
下图①是我遇到的问题,执行到这里时发现是单字节,但执行还是可以执行经过我努力的搜索,总于找到了和我有同样遭遇的老哥,并且有大佬给出了解决方案 见下图②这是我按了Ctrl + a后的情况 见下图 ③虽然大佬的方法正确,但是我并不认同他对原因的分析。因为我反汇编的程序是运行时解压缩程序,而这段代码正是原程序的OEP,由此我分析这段代码本来是加密了,OllyDBG认为它是数据然后在前面的程序中,这段代码被解压了,但是OllyDBG却没有刷新,...
2020-11-15 22:49:23
475
原创 exe 汇编代码中是如何确定函数的地址的呢?
问:对于dll中的函数地址在运行前是不知道的,那在文件代码中是如何编写 “call 函数地址” 之类的指令的呢?答:虽然不知道函数的地址是什么,但是知道函数的地址写在哪里。可以[函数地址的指针]来读取函数的地址比如: GetStartupInfoW函数的地址不是01220100(上面蓝色笔圈出的地址是小端序) 而是01220100地址是处存放着GetStartupInfoW函数的地址 见下图 如此一来,当PE装载器把...
2020-11-13 22:04:03
723
原创 a and b a or b
大家对于 10 and 20 10 or 0 到底取哪个是不是很懵逼呢?其实很简单:记住2点就好了 1.将0看作False 非0值看作True 如:10 and 0 == True and False 结果为 0 可要是 0 and 0 取哪个 因为都是 0 取值就无所谓了 ...
2020-02-27 20:14:41
606
原创 10%-3 = -2 取余运算详解
10 / -3 = -3.3333333因为余数的取整方法是向下取整,也就是取小值,例如 3.3333 就取3 -3.3333 就取 -4 所以 10 / -3 = -4 .... -2
2020-02-27 18:30:01
2659
原创 python 关于基本数据类型地址问题
基本数据类型的地址有的时候是相同的,有的时候是不同的,如果把每一种情况都记下来不识很聪明,但是如果我知道如何观察地址,就可以即查即用如上图所示, a == b 是判断数据内容是否相同 明显 -6 ==- 6 a is b 是判断数据存储的地址是否相同,也就是引用是否相同 在这里它们的地址不相同 ...
2020-02-27 18:01:48
478
原创 python如何判断空行
字符串用空行的情况有“”、空格、/r、/r/nif string and (string !=“/r” and string !="/r/n" ):其他代码
2020-02-19 20:52:23
6687
原创 关于编码的理解(每一滴成长都值得记录)
为什么要使用编码 编码是很久之前就出现的产物,它是为解决我们计算机宝宝不识字而产生的工具,将数字与字符建立一个联系,这样我们的计算机只要记住数字就能认识这些字符了为什么编码有那么多的类型呢? 1.我们的程序员先辈不可能一次将所有的字符都教给计算机宝宝,所以在不断完善的过程中推出了许多版本 2.世界上的国家那么多,大家当然会优先将自己国家的字符交给计算机宝宝,比如我们国家...
2020-02-18 00:18:33
387
原创 JavaScript悬浮广告制作注意事项
<!doctype html> <html lang="en"><head><meta charset="utf-8"><title>无标题文档</title><style type="text/css"> #div1{ top:10px
2018-11-03 12:29:23
217
原创 C语言常量表示各种类型
常量中如果不提示计算机,int 会视为基本int型 分配4字节 可以加 L和l(小写的L) 例:100L 4字节 LL和ll(小写的L)例:100LL 8字节 ...
2018-04-03 16:52:07
3084
原创 关于为什么要使用补码的原因
首先我们来讨论为什么要使用反码的原因 1.在使用的反码就能符合负数当值减少是,负数会增大。 但是反码有一个缺陷; 当为值为正时:0的值为000000000; 当为值为负时:0的值为111111111;也就是说,如果按这样的方法去使用当我们让0减去1是它的值会从000000000到111111111也就是0-1=0;现实中这种计算方式肯定是错的,课我们让反码加1,变成补码...
2018-04-03 08:32:18
1246
原创 补码与溢出之间的关系
在无符号的int型中 int 的字节是4字节,可储存2^32-1个数,当上溢出时(int a=2^32-1)时其值在计算机中的储存是11111……1111111;当在加一时,高位进位,其值在计算机中的储存为000000……0000000,变成了0;所以无符号的类型溢出上溢出是对数值进行最大范围的求模运算;在有符号的int型中 可储存-2^31~~2^31-1个数,当上溢出时(int a=...
2018-04-03 08:16:36
2538
转载 浮点数在内存中的表示移位存储难点的理解
0 000000 0~ 0 111111 1即+ 0 到 127,第二个区间:1 000000 0~ 1 111111 1即 -0 到 - 127,大家看到这里发现问题了,怎么有两个零,一个正零,一个负零呢,好啦,我们再马上来看看使用移位存储方式会有什么效果,我们知道移位存储我们要加 127,为什么要加127,大家看看下面的例子就明白了,请看:127 使用这个新生成的字节来表示,则是:0 1111...
2018-04-02 23:56:24
750
转载 C语言整型溢出会怎
C语言的整型问题相信大家并不陌生了。对于整型溢出,分为无符号整型溢出和有符号整型溢出。对于unsigned整型溢出,C的规范是有定义的——“溢出后的数会以2^(8*sizeof(type))作模运算”,也就是说,如果一个unsigned char(1字符,8bits)溢出了,会把溢出的值与256求模。例如:12unsigned char x = 0xff;printf("%dn", ++x);上面...
2018-04-02 23:22:00
499
原创 为什么整型数范围要减1
01111 1111 1111 1111这个数就是最大数(有符号位):1+2^1+2^2+...+2^14=2^15-1符号位占一,
2018-04-02 22:37:18
10271
5
原创 整型常数后面加L有什么用
对于整数来说,缺省后缀的都视为int,比如55,88,1234567对于浮点数来说,缺省后缀的都视为double比如:2.344,88.9534,123456.78901所以,如果缺少后缀L又超过int范围的,就会照成溢出...
2018-04-02 22:17:12
6227
原创 时间复杂度
1.首先你需要求出语句的平均执行次数即所有可能的执行次数的和相加,再除以所有可能,即可得出。2.取最高位为时间复杂度 例题:求顺序表的插入算法的时间复杂度; for(i=length;i>position;--i) a[i]=a[i-1];当最好的情况是移动零次(插在最后),最坏的情况是移动n次(插在第一位),由于n个数据之间有n-1种插入的可能,再加上外面...
2018-04-02 21:46:40
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人