Forwarded from 「VoP」維尼之聲 - Voice of Pooh🔊
Telegram官方推荐的Dart语言bot支持库中,示例实现了一个小程序,发送“Fight for freedom”可以自动回复“Stand with Hong Kong”。
Github地址🔍
Github地址🔍
#reveng #recommend #aop 看到几个有意思的:
https://github.com/zifeihan/friday
https://github.com/WindySha/FridaXposedModule 免root使用
https://github.com/wrlu/FridaHooker, https://github.com/dineshshetty/FridaLoader 安装器
FridaTracer, FridaAndroidInjector
前者编程算法选得不好啊... 像不太会 Java
https://github.com/sensepost/objection Android/iOS 通用 object browser 支持它的dexdump插件
https://github.com/nccgroup/house Python 的 Frida Android, WebUI 封装
https://github.com/FrenchYeti/dexcalibur NPM 的,比较乱
https://github.com/antojoseph/diff-gui 简洁到窒息的 Python Web GUI - inject scripts
https://github.com/lasting-yang/frida_dump 简洁的 .dex/.so dump, hook defineClass(byte[])
https://gitlab.com/roxanagogonea/frida-scripts Android.
https://github.com/iddoeldor/frida-snippets 非常方便的即查文档
https://github.com/zifeihan/friday
https://github.com/WindySha/FridaXposedModule 免root使用
https://github.com/wrlu/FridaHooker, https://github.com/dineshshetty/FridaLoader 安装器
FridaTracer, FridaAndroidInjector
前者编程算法选得不好啊... 像不太会 Java
https://github.com/sensepost/objection Android/iOS 通用 object browser 支持它的dexdump插件
https://github.com/nccgroup/house Python 的 Frida Android, WebUI 封装
https://github.com/FrenchYeti/dexcalibur NPM 的,比较乱
https://github.com/antojoseph/diff-gui 简洁到窒息的 Python Web GUI - inject scripts
https://github.com/lasting-yang/frida_dump 简洁的 .dex/.so dump, hook defineClass(byte[])
https://gitlab.com/roxanagogonea/frida-scripts Android.
https://github.com/iddoeldor/frida-snippets 非常方便的即查文档
GitHub
zifeihan/friday
java runtime decompiler (java实时反编译工具). Contribute to zifeihan/friday development by creating an account on GitHub.
之前原以为只有 debugger 才能做到各种分析操作,没想到其实 hook/code injection 才是正道啊(当然利用解析器,脚本辅助进行静态分析也很必要,可惜当时我不懂这些自动化)
现在的 duangsuse 也不是写不出二进制解析框架的武德犬了
现在的 duangsuse 也不是写不出二进制解析框架的武德犬了
Telegram
duangsuse::Echo
#reveng #tools #share 分享一些开源机器代码 REverse engineering 工具 ❤️
== https://github.com/namhyung/dwarview
ELF DWARF 调试符号信息查看器
== https://igio90.github.io/Dwarf/docs/installation.html
一个普通的(并非逆向工程用)调试器
== https://github.com/wisk/medusa
一个普通有 GUI 的 disassembler…
== https://github.com/namhyung/dwarview
ELF DWARF 调试符号信息查看器
== https://igio90.github.io/Dwarf/docs/installation.html
一个普通的(并非逆向工程用)调试器
== https://github.com/wisk/medusa
一个普通有 GUI 的 disassembler…
#Android https://t.me/AndroidDevCn/181472 #GUI
https://t.me/AndroidDevCn/181545 #Java bitmap decode
https://t.me/AndroidDevCn/181551 #build Gradle
override 生命周期 来判断应用是否在前台挺好啊🤔 感觉有点像注册 keyup,keydown 来维护整个键盘状态一样,很直白而且节省,谁用谁监听呗
https://t.me/AndroidDevCn/181545 #Java bitmap decode
https://t.me/AndroidDevCn/181551 #build Gradle
override 生命周期 来判断应用是否在前台挺好啊🤔 感觉有点像注册 keyup,keydown 来维护整个键盘状态一样,很直白而且节省,谁用谁监听呗
Telegram
logic in [CN] Android Dev
大佬们,Android UI有什么高效入门的方式吗?
#sysadmin #boot #Learn 基本上,多系统是失败了😂 昨天特意下了个 32bit x86 8.0 Android OREO 的,看起来只能保留手动操作
但是我写了自动生成启动项的脚本,重构了 /bin/qemu-android, 也有一些有趣的片段收集了一下。 折腾这些就是费时间,比写程序更耗时😥
开始还以为能从 kernel cmdline 拿参数甚至利用原开发者 CwHuang 的既有代码,最后还是没捋清变量关系🤪
不过以后就有选择 也方便调试了,虽然开机启动要 5 分钟,秒杀 99% 的电脑😂
https://pastebin.ubuntu.com/p/kvb2kZXHSm
但是我写了自动生成启动项的脚本,重构了 /bin/qemu-android, 也有一些有趣的片段收集了一下。 折腾这些就是费时间,比写程序更耗时😥
开始还以为能从 kernel cmdline 拿参数甚至利用原开发者 CwHuang 的既有代码,最后还是没捋清变量关系🤪
不过以后就有选择 也方便调试了,虽然开机启动要 5 分钟,秒杀 99% 的电脑😂
https://pastebin.ubuntu.com/p/kvb2kZXHSm
Forwarded from LetITFly News (LetITFly 让技术飞)
Forwarded from &'a ::rynco::UntitledChannel (Rynco Maekawa)
千里冰封 | PLCT 公开演讲:当我们在谈论编程语言的时候我们在谈论什么
https://ice1000.org/notes/plct-tt-intro
https://ice1000.org/notes/plct-tt-intro
作为本领域的频道主动苏当然也会作总结。#plt 😋
当然,我现在非常重视实践能力以及同代码量应用范畴的最大化,可能会希望编译器不只能做单纯/直白的一种结构转换,而能带有更多边角信息(行号 等)的复用,从这点来说也必须向大佬学习(开发了 ImGui binding)。
「当我们谈编程语言,实际是在讨论很多门相对独立的语言」
谈语言除了好看与否、红火与否、高大上与否,当然离不开『语言工具』,如构筑并管理『语法树』图结构的『解析器』(其亦可同时实现代码高亮)、做代码生成转化的『编译器』,以及提供(sizeof 等)信息和静态断言的类型检查器,不然就虚无缥缈了。
一般编程语言构造除了(可能的)解决领域应用痛点,模块化(易用于解决大型问题)、类型安全(尽早地保证正确性和性能)、表达式(用于描述计算) 是它的必须;举了个例子, #Kotlin 的
他提到,『宏(macro)』作为编译期能展开 减少冗余代码量的特性,以及「类型与表达式语言更亲近」的事实(Kotlin 对执行中断类型
「相同类型的表达式互换不影响 well-typedness」
“程序可以有无限个、类型在大多数系统下也是有无限种。
数学上讨论无限大的对象(如无穷数列)的时候往往会涉及对这个对象的结构找有限的、被重复的规律,所以我们也对程序找了规律。
我们『构造』程序和类型的手段是有限的——比如在 C 语言里面,那些值类型就是几个单独的类型,然后我们能用结构体(struct)、union、数组(T[])、指针(T*)等功能从已有的类型构造新类型。(enum 本质类似 int 的 typealias 、数组 T[] 类似能以相似语法 new 的 T*)
编程者仅有这些手段——可以说所有的类型都是由这些「基础构造」方法互相缝合构造出来的,手段是有限的,正如语法的 BNF(形式化文法 即规范) 是有限的。”
类型理论上,构造值被称为 introduction ,利用它们去计算称为 elimination (这名字像问题的出现和消逝),这些都要定规则:
数值『字面量(literal)』都是 int 类型的实例(int 值)
指针类型 T*,若有
我们可以对 int 值施用数值运算的运算符、判等(及大小)、按位且或非 交并补(A - B,
指针类型 T* 的实例 a,可以解引用 (*a) 得到型为 T 的结果,或者说
类型上的信息编码:如果我们能用 T 类型及其 intro/elim 去实现出 T1 类型的 intro/elim,那可以说 T 是一个比 T1 更 general(概括性) 的类型,实现其操作(即 from/into) 的过程我们称之为『编码(encode)』,也听有说法表示 T1与T 是等价(equivalent) 的。
上篇感觉有点意思的是,提到了「操作语义」「指称(指代?)语义」「范畴语义」,也就是编程范式了,表述式(即过程式)、定义式、关系式(逻辑),这些要素在语言中各有取舍。 Java 就是 OOP 表述式化(
我们可以说『语义』是程序的「执行方式」,比如函数调用的语义就是把函数体的语义拿出来,把里面的形参(formal parameters)引用(reference),换(substitute)成实参(arguments),然后这个函数体的语义就是这个函数调用的语义。
我们也可以说这个编程语言实际上是某个更基础的语言的『高级形式』,比如可以用「翻译出汇编的方式」来讨论 C 程序的语义。
比如我有调用
事实上,这分别就对应着解释型(interpreted)语言和编译型(compiled)语言!是不是感觉和常见的编译原理知识联系到一起了?
相关资料:
https://t.me/dsuse/14926
https://t.me/dsuse/14705
在本苏的频道搜
表达式(中缀算符链、结合优先级、前缀算符和后缀
语句和控制流(
函数也即子程序调用与作用域(call/return, scoping, inline...) 、
类型转换与数值宽度提升、
这四点是要注意的,此外镇静解析(即部分解析)策略与良好的错误报告、基于编译单元/函数体的增量解析、常量折叠、评估损益自动内联,以及 基础的组合(struct,T[])/分支(union,A|B)数据结构 是必不可少的。
中篇和结尾的学术性内容就不说了,睡大觉喽。😝
另外冰封竟然用中文了,第一眼看莫名觉得有点突兀,久违的中文博客。😊
我做不了总结的是,比较 Haskell/Scala 的部分以及 Coq (实际的逻辑关系编程…… 但其目的就是过类型检查 而不是写普通应用了,当然蛤丝科不带副作用能不能编程,当然也是可以的,因为计算机就有按顺序执行的能力)
当然,我现在非常重视实践能力以及同代码量应用范畴的最大化,可能会希望编译器不只能做单纯/直白的一种结构转换,而能带有更多边角信息(行号 等)的复用,从这点来说也必须向大佬学习(开发了 ImGui binding)。
「当我们谈编程语言,实际是在讨论很多门相对独立的语言」
谈语言除了好看与否、红火与否、高大上与否,当然离不开『语言工具』,如构筑并管理『语法树』图结构的『解析器』(其亦可同时实现代码高亮)、做代码生成转化的『编译器』,以及提供(sizeof 等)信息和静态断言的类型检查器,不然就虚无缥缈了。
一般编程语言构造除了(可能的)解决领域应用痛点,模块化(易用于解决大型问题)、类型安全(尽早地保证正确性和性能)、表达式(用于描述计算) 是它的必须;举了个例子, #Kotlin 的
package/import 和 #Rust 的 mod/use 可以说是一种东西,不少语言带有的特性是跨语言的(替换并不影响语言的表现力)。他提到,『宏(macro)』作为编译期能展开 减少冗余代码量的特性,以及「类型与表达式语言更亲近」的事实(Kotlin 对执行中断类型
Nothing 的处理印证了这点)「相同类型的表达式互换不影响 well-typedness」
“程序可以有无限个、类型在大多数系统下也是有无限种。
数学上讨论无限大的对象(如无穷数列)的时候往往会涉及对这个对象的结构找有限的、被重复的规律,所以我们也对程序找了规律。
我们『构造』程序和类型的手段是有限的——比如在 C 语言里面,那些值类型就是几个单独的类型,然后我们能用结构体(struct)、union、数组(T[])、指针(T*)等功能从已有的类型构造新类型。(enum 本质类似 int 的 typealias 、数组 T[] 类似能以相似语法 new 的 T*)
编程者仅有这些手段——可以说所有的类型都是由这些「基础构造」方法互相缝合构造出来的,手段是有限的,正如语法的 BNF(形式化文法 即规范) 是有限的。”
类型理论上,构造值被称为 introduction ,利用它们去计算称为 elimination (这名字像问题的出现和消逝),这些都要定规则:
数值『字面量(literal)』都是 int 类型的实例(int 值)
指针类型 T*,若有
((T)expr) 那么 (&expr) 的类型就是 T*我们可以对 int 值施用数值运算的运算符、判等(及大小)、按位且或非 交并补(A - B,
a&~b)运算指针类型 T* 的实例 a,可以解引用 (*a) 得到型为 T 的结果,或者说
*((T*)a).item 实际代表 a->item ,要以这种读内存、解指向的方式参与计算类型上的信息编码:如果我们能用 T 类型及其 intro/elim 去实现出 T1 类型的 intro/elim,那可以说 T 是一个比 T1 更 general(概括性) 的类型,实现其操作(即 from/into) 的过程我们称之为『编码(encode)』,也听有说法表示 T1与T 是等价(equivalent) 的。
上篇感觉有点意思的是,提到了「操作语义」「指称(指代?)语义」「范畴语义」,也就是编程范式了,表述式(即过程式)、定义式、关系式(逻辑),这些要素在语言中各有取舍。 Java 就是 OOP 表述式化(
switch, new List 等强调很重)、 Kotlin 则定义式化(if 有表达式型更有多分支 when,提倡 map/reduce/associate 等列表处理函数,连 break 也是表达式),范式没有绝对的归类,每个语言都是独一无二的。我们可以说『语义』是程序的「执行方式」,比如函数调用的语义就是把函数体的语义拿出来,把里面的形参(formal parameters)引用(reference),换(substitute)成实参(arguments),然后这个函数体的语义就是这个函数调用的语义。
我们也可以说这个编程语言实际上是某个更基础的语言的『高级形式』,比如可以用「翻译出汇编的方式」来讨论 C 程序的语义。
比如我有调用
f(a),那么它的语义就是『f 的函数体』中『所有对参数的引用』全部换成 a 的语义后得到的一坨,同样是表达式的东西的语义。(当然调用前 f 得被声名为只能有一个参数、或不定长参数的函数,而且能找到函数体,这个参数的类型和表达式 a 的类型相同,或者兼容)事实上,这分别就对应着解释型(interpreted)语言和编译型(compiled)语言!是不是感觉和常见的编译原理知识联系到一起了?
相关资料:
https://t.me/dsuse/14926
https://t.me/dsuse/14705
在本苏的频道搜
UpValue 可以得到很多相关知识。说句题外话,本苏觉得语言实现的重点在于规范化程序结构和数据模型,表达式(中缀算符链、结合优先级、前缀算符和后缀
e.item, e[idx] 等)、语句和控制流(
if when while do for, break continue)、函数也即子程序调用与作用域(call/return, scoping, inline...) 、
类型转换与数值宽度提升、
这四点是要注意的,此外镇静解析(即部分解析)策略与良好的错误报告、基于编译单元/函数体的增量解析、常量折叠、评估损益自动内联,以及 基础的组合(struct,T[])/分支(union,A|B)数据结构 是必不可少的。
中篇和结尾的学术性内容就不说了,睡大觉喽。😝
另外冰封竟然用中文了,第一眼看莫名觉得有点突兀,久违的中文博客。😊
我做不了总结的是,比较 Haskell/Scala 的部分以及 Coq (实际的逻辑关系编程…… 但其目的就是过类型检查 而不是写普通应用了,当然蛤丝科不带副作用能不能编程,当然也是可以的,因为计算机就有按顺序执行的能力)
Telegram
duangsuse::Echo
#cs #project #tools 经历了好事多磨后,我的第一个脚本语言实践终于成功啦~ 而且支持 lexical scoping ,看这里。 (上图 LexicalScope 的定义,真古怪呢)
Forwarded from 层叠 - The Cascading
Ant Design 是蚂蚁集团的设计语言。近日,有用户在 v2ex 上反馈,表示 Ant Design 网站链接到的某篇文章 [1] 中的中国地图不完整。
Ant Design 已于早些时候将此文章的链接从网站移除 [2]。
src: https://v2ex.com/t/748995
1. https://hackernoon.com/interesting-javascript-libraries-born-in-china-d50d1bb81355
2. https://github.com/ant-design/ant-design/commit/0e95728fc92a4c00e261a9564ba264ab18eae1fd
Ant Design 已于早些时候将此文章的链接从网站移除 [2]。
src: https://v2ex.com/t/748995
1. https://hackernoon.com/interesting-javascript-libraries-born-in-china-d50d1bb81355
2. https://github.com/ant-design/ant-design/commit/0e95728fc92a4c00e261a9564ba264ab18eae1fd
V2EX
Ant Design 的同学 我不知道有个东西当讲不当讲,关于你们官网的一个外链政审不严 - V2EX
分享发现 - @shuson - 你们的官网 https://ant.design/docs/spec/introduce-cn这个 element 的链接: https://hackernoon.com/interesting-
#JS #web #statement 😒 想想这几年也是沧海桑田啊,首先不会有人拼接 HTML 字符串 innerHTML= 了,其次 JQuery 也很小化了, Array.prototype.forEach 取代 $.each 、 fetch 和 await/async 取代 $.ajax/onSuccess 和裸的 XHR ,纯 DOM 无扩展变得可能(复用层次提升,也不需要 JQ 的简写了),甚至 ui 都有 Vue,Angular 和 React 从动态/静态角度生成代码,不用去手写、操纵裸 DOM