#aop #security #recommended #DontKnow #Android 哇,之前早有闻大名的面向侧面编程 #reveng 框架 Frida (frida.re) 竟然这么能干,看来是我大意了,没注意示例😱
https://forum.90sec.com/t/topic/95
“Inject your own scripts into black box processes. Hook any function, spy on crypto APIs or trace private application code, no source code needed. Edit, hit save, and instantly see the results”
方便力,想到以前动态 inspect 执行情况和 Object 的 AndBug debugger ,Frida 的能力更有意思啊,同样能做函数断点
🧐收集各种开放性动态(frida,jdwp,oat_dexdump)、静态(r2,apktool,jad,smalivm)逆向工具,也挺多啊g
https://forum.90sec.com/t/topic/95
“Inject your own scripts into black box processes. Hook any function, spy on crypto APIs or trace private application code, no source code needed. Edit, hit save, and instantly see the results”
方便力,想到以前动态 inspect 执行情况和 Object 的 AndBug debugger ,Frida 的能力更有意思啊,同样能做函数断点
🧐收集各种开放性动态(frida,jdwp,oat_dexdump)、静态(r2,apktool,jad,smalivm)逆向工具,也挺多啊g
90Sec
frida入门级详细讲解
frida入门级详细讲解 观文须知 由于文章在编辑时使用的markdown,但论坛禁止调用外部图床,为了方便编写,文章未提供图片,如果真的对frida感兴趣,可以根据文章内容对操作进行复现。 文章后半部分充斥着大量的java、python和javascript代码,可能会产生不良副作用,如有不适请快速关闭页面,因此产生的不良后果本人概不负责。 读万卷书,不如行万里路;行万里路,不如阅人无数。 环境准备 Android Studio(其他APP开发IDE也可以) mumu模拟器(重点安利对象,无广…
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-