duangsuse::Echo
notice: 我之前的水平比现在菜多了,而且暑假逆向分析的三天中间有两天都开小差去分析调试修改了个二进制 AXML 文件解析库(后来还被 @drakeet 喷是足足花了三天才破解纯纯写作,其实是总共花了三个小时,其中大部分时间都是在熟悉分析工具使用和部署分析环境),当然目的是为了能在自己的手机上 ADB JDWP (当然,不是直接 DDMS) AndBug 动态分析纯纯写作,最后结果很成功,不过 drakeet 表示他没费心, 当然我现在不可能再碰他的应用了 才没时间....
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
>> ct java.security.MessageDigest ## Setting Hooks -- Hooked java.security.MessageDigest 🌚🔒🗞
后来 drakeet 其实误解我一段没啥意思的话(猫鼠游戏,他认为我说我是猫他的防护措施是鼠然后非常 angry 就把我批判了一番)
然后表示是自己用 Base64 失误了,被我扫 Dex string pool 扫到了提示文本然后逆向反查 xref 找到使用文本的代码
其实我一直很想对他说... 就是你拿 RSA-2048 加密了再用 JNI native 代码解密我也一样能找到检查逻辑在哪... 你根本没有尝试理解我做了什么而是自己找了个自己认为最有可能的套上,正如当时的我看不懂你的 MultiType 是做什么用的时候我干的一样
...从一开始分析方向就弄错了 真的不是静态分析的
如果有机会,我想说这话的时候我的心情一定很平和。
然后表示是自己用 Base64 失误了,被我扫 Dex string pool 扫到了提示文本然后逆向反查 xref 找到使用文本的代码
其实我一直很想对他说... 就是你拿 RSA-2048 加密了再用 JNI native 代码解密我也一样能找到检查逻辑在哪... 你根本没有尝试理解我做了什么而是自己找了个自己认为最有可能的套上,正如当时的我看不懂你的 MultiType 是做什么用的时候我干的一样
...从一开始分析方向就弄错了 真的不是静态分析的
如果有机会,我想说这话的时候我的心情一定很平和。
Forwarded from duangsuse::Echo
混淆不能太大的干扰动态分析( :-P
duangsuse::Echo
混淆不能太大的干扰动态分析( :-P
即使是当时非常 naive 的 duangsuse 都明白这样一个简单的道理 — 一般情况下,混淆(obfuscate)你的 Dex 文件符号们的名字(兼标识符),不能使大部分有特异目标的动态分析受到太大的干扰
只有完全没啥逆向工程技能的 Jawa 程序员才会认为混淆和原生代码可以阻挡一切
Nouveau,开源的 N 卡驱动项目几乎就(除了 CUDA)可以取代闭源 N 卡驱动的,而编写它所用的很多数据都是通过逆向工程得到的,要知道闭源 N 卡驱动几乎都是以机器代码形式发布的。
理论上只要由用户的计算设备执行你的程序,你就达不到完全保护它逻辑的目标 — 用户的设备使用你的程序的 *首要条件* 就是理解你的程序如何运行
工程量上的问题,现在也有几个反编译器能做到比较妥帖的恢复大致逻辑的,即使是原生代码,未必就能撑过多少天,除非是那种弱智式的为了加固而加固
那样或许根本没人愿意和你玩,不过少数几个比较死的杠精或许还会为此专门开坑写工具分析呢(
只有完全没啥逆向工程技能的 Jawa 程序员才会认为混淆和原生代码可以阻挡一切
Nouveau,开源的 N 卡驱动项目几乎就(除了 CUDA)可以取代闭源 N 卡驱动的,而编写它所用的很多数据都是通过逆向工程得到的,要知道闭源 N 卡驱动几乎都是以机器代码形式发布的。
理论上只要由用户的计算设备执行你的程序,你就达不到完全保护它逻辑的目标 — 用户的设备使用你的程序的 *首要条件* 就是理解你的程序如何运行
工程量上的问题,现在也有几个反编译器能做到比较妥帖的恢复大致逻辑的,即使是原生代码,未必就能撑过多少天,除非是那种弱智式的为了加固而加固
那样或许根本没人愿意和你玩,不过少数几个比较死的杠精或许还会为此专门开坑写工具分析呢(
Forwarded from 小林家的托尔 (Tooruchan ← 做宝可梦)
https://motherboard.vice.com/en_us/article/a3mgxb/the-internet-has-a-huge-cc-problem-and-developers-dont-want-to-deal-with-it
#不予置评
#不予置评
Vice
Some of the Most Popular Coding Languages Pose a Huge Security Problem
What do Heartbleed, WannaCry, and million dollar iPhone bugs have in common?
Forwarded from 小林家的托尔 (Tooruchan ← 做宝可梦)
把软件的漏洞全部归结为编程语言的问题,简直是本末倒置
Forwarded from Yilin Chen
在系统编程领域,曾经C/C++是仅有的选择。虽然光靠人难以避免内存安全问题,但没有人会让编程语言背锅。
可是文中也提到了,今天我们有了更好的解决方案Rust,责备C/C++当然没问题。
可是文中也提到了,今天我们有了更好的解决方案Rust,责备C/C++当然没问题。
Forwarded from 羽毛的小白板
实践证明,如果要涉及重构等方面操作,不要学一些 JS parser 把各种二元运算的表达式都混杂在一起
Forwarded from XiNGRZ's (XiNGRZ)
Windows 10专业版售价1799人民币,macOS限制在苹果的Mac设备上使用,而很多人可能不知道有一个广泛应用在消费电子、汽车、金融和能源等等领域的操作系统,它不但是免费的,甚至公开所有源代码,它就是Linux,它由全球各地无私的工程师共同开发(2012年统计有八千人贡献了代码),可以说是人类美好灵魂与智慧的结晶之一。使用这个伟大的操作系统条件就是遵守开源协议,其中一部分内容简而言之就是如果你公开发行你的系统,那么你就需要公开这部分源代码,我热爱Linux和开源软件,商用Linux却不公开源码相当于给共享单车加私锁一样让人不齿,“Linux为什么不告他”这类苍白的狡辩更让人恶心,一个人不作恶的源头应该是内心的善良,而不是对惩戒的顾忌。虽然受经济条件的限制,并不是每个人都能玩正版的游戏,看正版的电影,但是我们至少可以选择遵守开源协议的手机,尽一点力推动对这个世界向更美好的未来发展。
—— 魔法师蛋小丁 (https://weibo.com/2213561393/H43gTwMfQ)
—— 魔法师蛋小丁 (https://weibo.com/2213561393/H43gTwMfQ)
Weibo
Windows 10专业版售价1799人民币,macOS限... 来自魔法师蛋小丁 - 微博
Windows 10专业版售价1799人民币,macOS限制在苹果的Mac设备上使用,而很多人可能不知道有一个广泛应用在消费电子、汽车、金融和能源等等领域的操作系统,它不但是免费的,甚至公开所有源代码,它就是Linux,它由...
Forwarded from LEXUGE (Ying Kanyang)
Say hello to the XCH | WASM! https://xch-ceb.github.io/xch-web/
LEXUGE
Say hello to the XCH | WASM! https://xch-ceb.github.io/xch-web/
简介:化学表达式平衡器的 Rust WASM (+ JavaScript/CSS/HTML) 后端 版本
duangsuse::Echo
简介:化学表达式平衡器的 Rust WASM (+ JavaScript/CSS/HTML) 后端 版本
duangsuse::Echo
这位 @LEXUGE 同学还是很厉害的,不过目前不在编译原理,主要大概还是学业为重 #rust 平衡算法我感兴趣,可以下次研究一下,rust Parser Combinator 也可以试试,当然都只能下次
至少他在你们都还只会拿一点非常简单的算法「当 button 被点击时调用 doEcnrypt,doEncrypt 把 text 的文本设置为 encode 转换过的文本,encode 将 string 参数 base64 编码后用 perference key1 DES 加密再拿 perferebce key 2 AES 加密...」之时就会更高级的算法了,和你们那种简单到整个项目一两行递归两三个循环的有本质区别,我们认为这算法知识是被理解的,对问题彻底的分析和非线性的算法结构是获得更高超技术的本质性特征,而且同是初/高校生他就很熟练的在用 Rust 写目前还无法忽视移动语义和 lifetime、ownership 的 Rust library 了,至少人家还会个参型多态(USTC 某 cs 系学生搞的资料弄得我都不敢瞎说 generic 和 parametric polymorphism 有啥关系了... 冲突的定义...郁闷),现在一些初中大佬不知道还能这么玩,或者没有比较扎实的功底知道这么玩有啥惯用法什么的
现在很多 Android 开发大佬都没有做到这点,当然有些还是至少会玩点外部库、异步回调、Thread、异步 Timer、Canvas、自作 Animation、基本会用 DOM、会写个 spider/scraper、web 后端什么的,比较 excited 但都比较 trivial(也有不 trivial 的,但都可以做得比较 trivial e.g. 你完全可以只懂个语法,然后它了做啥封装了啥影响到了啥执行时发生了什么都不知道,或者一碰到不会的就到网上查资料抄/翻译代码,我以前就是的,反正 Android 开发资料多博客多代码好抄看得懂就抄的到),理解这种算法需要更大的努力才可以,不是那种顺序调用几个方法就可以做到的事情,RednaxelaFX 说的那啥 Script Ahead, Code Behind 可能就是这个意思 — 你前端写了优美的代码,但这是高层抽象、代码复用给你的好处,其实后面还有很多你根本不知道是做什么的代码 — 当然良好的封装必须让你无需考虑实现细节,不过,你最好还是知道 — 不是所有人都如数学系的人们那样追求完美
btw. 当然人家也是有两年经验的(长嘘一口气)(从会编译别人的项目算起)
所以你们还有机会赶,所以快来学我 Rust 大法吧(逃) Rust 程序设计语言 😆
现在很多 Android 开发大佬都没有做到这点,当然有些还是至少会玩点外部库、异步回调、Thread、异步 Timer、Canvas、自作 Animation、基本会用 DOM、会写个 spider/scraper、web 后端什么的,比较 excited 但都比较 trivial(也有不 trivial 的,但都可以做得比较 trivial e.g. 你完全可以只懂个语法,然后它了做啥封装了啥影响到了啥执行时发生了什么都不知道,或者一碰到不会的就到网上查资料抄/翻译代码,我以前就是的,反正 Android 开发资料多博客多代码好抄看得懂就抄的到),理解这种算法需要更大的努力才可以,不是那种顺序调用几个方法就可以做到的事情,RednaxelaFX 说的那啥 Script Ahead, Code Behind 可能就是这个意思 — 你前端写了优美的代码,但这是高层抽象、代码复用给你的好处,其实后面还有很多你根本不知道是做什么的代码 — 当然良好的封装必须让你无需考虑实现细节,不过,你最好还是知道 — 不是所有人都如数学系的人们那样追求完美
btw. 当然人家也是有两年经验的(长嘘一口气)(从会编译别人的项目算起)
所以你们还有机会赶,所以快来学我 Rust 大法吧(逃) Rust 程序设计语言 😆
duangsuse::Echo
至少他在你们都还只会拿一点非常简单的算法「当 button 被点击时调用 doEcnrypt,doEncrypt 把 text 的文本设置为 encode 转换过的文本,encode 将 string 参数 base64 编码后用 perference key1 DES 加密再拿 perferebce key 2 AES 加密...」之时就会更高级的算法了,和你们那种简单到整个项目一两行递归两三个循环的有本质区别,我们认为这算法知识是被理解的,对问题彻底的分析和非线性的算法结构是获得更高超技术的本质性特…
当然有些 Android 开发还有界面设计的独特技巧,其实那也看天赋?也看生活积累和学习、其他设计风格的转化和杂糅的
MD 风格就不用说了,可以比较模式化或者「直接」性设计
当然真正的设计我觉得木函《一个木函》的也是不错的,大概就是半个 MD + 允许其他风格(自定义配色、可选部分顶级控件圆角阴影) + Canvas,引入动画做得不错,当然最初版本还是没有的
不过那和编程方面的技术没啥大关系,设计的好看看看就好,毕竟界面设计也是为包装的逻辑本身服务的(或者说,皆有?)
... 好吧说远了,前端做前端后端做后端
MD 风格就不用说了,可以比较模式化或者「直接」性设计
当然真正的设计我觉得木函《一个木函》的也是不错的,大概就是半个 MD + 允许其他风格(自定义配色、可选部分顶级控件圆角阴影) + Canvas,引入动画做得不错,当然最初版本还是没有的
不过那和编程方面的技术没啥大关系,设计的好看看看就好,毕竟界面设计也是为包装的逻辑本身服务的(或者说,皆有?)
... 好吧说远了,前端做前端后端做后端