duangsuse::Echo
771 subscribers
4.42K photos
135 videos
583 files
6.71K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
Radare 2 Web 前端的截图
#sysadmin 至于那个破电脑,我用 DiskGenius DOS 版自动修复了一下坏道(就是动态规划找到如何调整移动分区移动块以便在使用硬件坏道部位留下空白空间,不访问坏道部分即可)

然后现在还好,重启后 WinPE 能挂载 XP C: 盘 所在分区了
可惜电脑太卡,这点修复足足花了连续一晚上又(加起来又)一天的时间
上面右上角那个就是救命的闪存,such wow~
另外一个五六年的破烂笔记本,着实是硬件的问题而且不是主板电容冻了, 比较麻烦而且我目前着实不擅长这类而且没时间

换了最好,反正硬盘又没坏
duangsuse::Echo
#Share #Reveng #Backend #Android #Radare2 #Decompiler #PL #CS #recommended 今天也不去完成之前那个跨平台 ABI 移植的问题了,专门研究一下 BEL 本来的定义是如何运行,指令们等价的代码是什么 顺便写出一点调试用的示例 i686 汇编程序试试 顺便推荐动态指令工具 Frida 和反编译器 RetDec,都是跨平台的逆向分析工具(当然 Android 上动态分析 AndBug 也不错) 还有 Compiler Explorer 和…
呃... 因为今天估计错了,然后现在要去上学 #school

所以赶快举个 r2 动态调试的例子来:赶快讲了你们学到了然后我就走的,那个下周说

(C 语言入门难度,真的)

首先我们的程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static char *msg = "duangsuse 菜鸡\n";

int main(int argc, const char **argv) {
char *str = malloc(sizeof(msg));
strcpy(str, msg);

if (argc > 1) printf(str);

return -1;
}

其中 strcpy(str, msg) 是把常量 msg 复制到 str 这个 malloc() 堆分配好的容器里,约等于 C \00 结尾字符串的 *dst = *src

然后这个程序就是 argc 数目大于 1 才会打印字符串,就是说 ./hck['./hck'])不会打印 ./hck foo['./hck', 'foo'])会
然后它要返回 -1,就是说执行完 $? 就是 255(因为一个 8 位的二进制下溢了,最小值是 0 最大值是 255)

我们的 hack 是修改这个字符串,把它改成 duangsuse 笨蛋(吐槽:这么自轻自贱么)
然后是 在不使用额外参数(argc = 1)的时候打印这个字符串,然后让 main() 返回 0 而不是 -1

gcc hack_me.c -o hck -g # 编译
./hck # 应该无输出退出
echo $?
#=> 255
./hck foo
#=> duangsuse 菜鸡

然后我们来打开 radare2,hack 它

[DuangSUSE@duangsuse]~/Projects/reveng% r2 hck 
-- I accidentally the kernel with radare2.
[0x004004a0]>

then

doo # 开始调试
d main # 在 main 入口处处中断
dr # 找到 rsp
# 然后我们 seek 到 rsp
0x7ffc42efd520
*rsp # 输出 0x1,就是 argc
*rsp = 2 # 随便弄个大于 1 的数,这里暂时不教大家怎么修改程序逻辑,暂时教怎么获取和修改数据

然后我们试试第一个 hack 有没效果
[0x7ffc42efd520]> dc
hit breakpoint at: 400586
[0x00400586]> dc
duangsuse 菜鸡
[0x7f2182d35f96]> dc
child exited with status 255

==> Process finished

下一个,main() 返回修改为 0

... 好像没有时间了,明天回来再更
#life #reveng duangsuse 又回来了!(顺带重新更新了一下 r2 git,版本号有点魔性 commit hash 前面带个 g 我居然没看出来不在十六进制范围内(当成 commit hash 的一部分了然后 git loggit show #--shortstat 也可以)找不到)... 身为逆向工程和计算机底层系统爱好者我真该打...)
Forwarded from 羽毛的小白板
Forwarded from 羽毛的小白板
Forwarded from 羽毛的小白板
IL 归 IL,最终还是要看 JIT 的结果。有些反直觉……
Forwarded from Solidot
前微软实习生指责 Google 破坏微软的浏览器

前微软 Edge 团队软件工程实习生 Joshua Bakita 认为,微软放弃 EdgeHTML 渲染引擎切换到 Chromium 的原因之一是为了跟上 Google 推送到其网站上的一些变化。他认为 Google 的这些改变旨在让其它浏览器在 Google 网站上难以正常工作。非 Chrome 浏览器访问 Google 的部分在线服务时存在问题这已经是众所周知的事实。Bakita 以他在 Edge 浏览器团队的个人经历指出,他们难以跟上 Google 对其网站进行的改变。他举例说,Google 最近在 YouTube 中加入一个隐藏 div,导致 Edge 的硬件加速快速路径失效。他不确定 Google 是否是故意的,但他的许多同事对此确信无疑。他们向 YouTube 询问了隐藏 div 的问题,YouTube 拒绝了删除的请求,但没有给出详细解释。Media

https://www.solidot.org/story?sid=58993
Forwarded from 羽毛的小白板
#OI #CS #Low #China

同意,严重怀疑是使用的排版系统有很大毛病,每次很多中文书,代码示例的空格都有莫名缺失...
Forwarded from 爱学习的小天才 (今天你努力学习了吗?)
同学问我“为啥我完全抄书上的编译还是报错啊” 算是知道谭浩强有多烂了。立即远离qqqqxxx
Forwarded from 爱学习的小天才 (今天你努力学习了吗?)
神他妈 charch
Forwarded from 爱学习的小天才 (Ben Pig Chu // v20.8)
除了charch以外,scanf直接%s是有安全隐患的,可以直接构造输入进行缓冲区溢出……