- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 不使用四则运算实现加法
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。想法:使用位运算去模拟,那么下一步就是怎么模拟。二进制的按位相加实际等效于异或。 (异或,相同为0,相异为1;1与1异或为0,相当于产生了进位,但实际上对整个数进行异或时不会有进位的效果,00和10的情况就完全相当于加法的操作) 二进制的每位的进位计算等效于按位与,然后左移。(按位与,相当于把上一步1异...
2019-09-21 18:54:12 502
原创 左移右移(位运算)
实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多i为0x80000000,也就是2进制的100000...0000(共31位,有一个1个符号位),符号位被置1,其他位全是0,变成了int类型所能表示的最小值,32位的int这个值是-2147483648,溢出。 如果再接着把i左移1位会出现什么情况呢?在C语言中采用了丢弃最高位的处理方法,丢弃了1之后,i的值变成了0...
2019-09-21 18:04:05 433
原创 Jarvis OJ (逆向):软件密码破解-1
题目:看到别人的wp都说有壳,不知道为什么我的PEid查不出来壳的具体种类,运行程序,输入错误则退出。 IDA中,函数有几百个一个一个找核心函数肯定不现实,OD动态调试,找到 “你赢了”:向上翻,找到函数的开头CB1BB0向下翻,找到5个集中跳转:既然题目是密码破解,肯定是和加密算法有关的,所以要分析一下这5个jnz上面的具体操作:...
2019-09-13 18:19:49 762
原创 实验吧(逆向):1000
题目答案格式:CTF{}解题链接:http://ctf5.shiyanbar.com/misc/1000.exe运行截图,1000有特殊含义: 运行程序之后,发现生成了一张图片 tip.jpg : 可疑区: 函数入口...
2019-09-04 17:30:11 254
原创 实验吧(逆向):10000000
题目:寻找正确的输入解题链接:http://ctf5.shiyanbar.com/423/re/reverse3.exe在IDA中找到main函数F5一下:int __cdecl main(int argc, const char **argv, const char **envp){ char v4; // [esp+14h] [ebp-34h] char v5;...
2019-09-04 12:33:43 262
原创 实验吧(逆向):分道扬镳
题目:注意进入正确的流程,用最短的步骤走完迷宫。解题链接:http://ctf5.shiyanbar.com/423/re/rev2.exe过程IDA打开:顺着去找main函数: int main_0(){ size_t v0; // eax size_t v1; // ...
2019-09-04 11:09:52 328
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人