编译并vscode可视化调试Linux 4.18内核
编译并vscode可视化调试Linux 4.18内核1. 安装必要软件12345678910111213141516171819202122232425262728293031323334353637383940# 安装编译依赖组件。sudo apt install -y libncurses5-dev libssl-dev bison flex libelf-dev gcc make openssl libc6-devsudo apt install -y flex bison make gcc libssl-dev bc libelf-devwget https://mirrors.tuna.tsinghua.edu.cn/kernel/v4.x/linux-4.18.tar.gztar -zxf linux-4.18.tar.gzcd linux-4.18.tar.gz# 设置调试的编译菜单export ARCH=x86make x86_64_defconfigmake menuconfig# 下面选项如果没有选上的,选上(点击空格键),然后 save 保存设置,退出 exit。 ...
RSA中的数论知识
RSA中的数论知识由于本人的垃圾数学知识,因此只给出怎么用,如何证明就算了
1. gcd 辗转相除法也被称为欧几里得算法,有两个数a, b我们暂且认为a > b$$gcd(a, b) = gcd(b, a % b)$$具体远离我也不知道为什么,用就完事儿了$$if (b == 0){return\ a}$$然后就知道了最大公约数,求最小公因数只需要$a * b * gcd(a, b)$就行
python自带math.gcd(a, b),不用自己造轮子
2. 贝祖定理$a \times b \neq 0$就是说a,b 任意一个都不等于0,然后存在$ax+by = gcd(a, b)$
其中x, y不一定都是正数,也可以是负数
3. 扩展欧几里得算法然后就是通过欧几里得,解出上面的x, y
已知$$ax_1 + by_1 = gcd(a, b)\gcd(a, b) = gcd(b, a % b) = bx_2+a%b\ y_2\ax_1 + by_1 = bx_2 + (a - a/b\times b)y_2 \$$最后一步的a%b 可以变成a - a/b * b,这里的除法/ 指的 ...
金融学股票计算相关
金融学股票计算相关金融学上面,弄了好久终于弄懂了这三个率,还有股票相关的计算题,记录一下
Coupon rate, Current yield, Yield-to-maturity假设你买了一只股票,3年期的,每年给你6%的股息,现在值900元,三年后给你1000元,以这个例子来计算三种收益率
票面利率 (Coupon rate)每一期付给你的利息的利率,注意是票面面值,如果花950买了一个1000的股票,利率就是按照1000来算的
1面值 × 票面利率 = 利息
所以每年的利息应该是$$利息 = 1000 * 6% = 60$$
当前收益率 (Current yield)债券的年利息 和 债券当前的价格的比值,这是一个年利率,因为仅仅凭着票面值来算收益率是不可靠的,因为
1年利息额 / 债券当前市场价格 = 当前收益率
所以$$Coupon\ rate=\frac{1000 * 6%}{900}=\ 6.67%$$
到期收益率 (Yield-to-maturity)使得 债券未来现金流折现到现在等于债券价格的收益率
1未来现金流 ---折现---&g ...
IDA动态调试APK
IDA动态调试APK1. 使用apktools来解压apk1java -jar apktools.jar d <yourapk> -f -o <output_dir>
然后就会在你的输出目录下面找到apk文件,apk文件结构网上依照一大堆,随便找个网站参考apk逆向解析
随后你就能看到你的变成文件夹的apk了,classes.dex里面存放了里面的绝大部分java层逻辑,但是不太好看,使用dex2jar来进行反编译
2.使用dex2jar来反编译java层1d2j-dex2jar.sh -d <yourapk>
找到你的变成jar的apk之后,使用java-decompiler拖进去就可以直接看java层的数据,从而判断so层的函数
3. IDA载入相关so进行静态分析一般在apktools解压出来的apk文件夹里面的lib文件夹里面有好几种种类的so,如果有x86的就好使用android studio里面的模拟器来调试了,如果没有,那就GG,arm64-v8a对应64位的android_server64, armeabi-v7a对应32位的an ...
Pintools/angr 在 Linux/Windows 下的安装与使用
Pintools/angr 在 Linux/Windows 下的安装与使用由于跑Re有时候遇见一些特别恶心的题,自己逆太麻烦,就可以跑pintools,但是Windows下的命令行真的好多坑,而且尝试在windows上面安装的时候发现Windows由于库太繁琐,花费的时间更久,于是放弃windows上跑pintools的计划,在linux下面跑,一番折磨终于安装上了Pintools,傻xCSDN一堆没用的教程,把坑和过程记录于下
Linux下载源码并解压直接下载pintools的源码,地址
linux下面使用wget 即可,然后tar -zxvf pin-xxxxxx.tar.gz
编译instruction数量的插件可能需要搞个make,大多数的系统都带有make,如果没有的话就sudo apt-get install make
目前用的比较多的就是inscount0/1/2 插件,就是我们传说中的看某个输入对应要消耗多少指令
12cd source/tools/ManualExamplesmake obj-intel64/inscount0.so TARGET=intel64
要 ...