- 博客(41)
- 收藏
- 关注
原创 左右互搏03-so调用java md5-android开发
viewmodel加个 triggerEncryption 方法。fragment 加一个点击处理逻辑。在home xml 中加一个按钮。通过jni 生成这个java。
2025-01-26 07:18:41
39
原创 左右互博02-unidbg主动调用外层so函数
另一个是 module.findSymbolByName(“md5Enc”);// findSymbolByName 里面 尽量填ida里面的方法,这个动态注册的demo ,另一个是 动态注册的 要 dm.callJNI_OnLoad(emulator);这里有几个点 ,一个是要加载android.so unidbg 已经实现了。unidbg 代码。
2025-01-25 21:44:42
113
原创 左右互搏01-so 防直接hook之 左篇
稍微修改一下,另一个so 调用这个so,加密的时候,打开so 调用函数再关掉, 这样就没有一个好的调用时机了(主动构造除外)。如果java层直接调用, 那么frida 直接hook这个导出的函数就可以了 ,封装了一个统一出口函数 ,在另一个cpp中调用。当然也可以hook ,见下篇。这是一个魔改的md5。
2025-01-25 18:17:38
76
原创 笔记-利率学习记录
然而,随着经济增长,人们手中可支配收入增加,需求上升,可能导致,形成通货膨胀压力。为应对通胀,央行可能采取加息政策以短期抑制经济过热并稳定物价。
2024-11-04 20:37:41
1016
原创 基础-通货膨胀/通缩
通货紧缩:指价格水平持续下降的过程。需求拉动通胀:需求超过供给,价格上涨。成本推动通胀:生产成本增加,企业转嫁成本。货币供给增加:中央银行增加货币供应,导致通货膨胀。预期通胀:人们对未来价格上升的预期导致当前行为改变,进一步推动通胀。通货紧缩:价格水平持续下降,导致经济活动萎缩,企业经营困难,失业率上升。
2024-11-03 23:05:12
905
原创 安卓篇-unidbg初步测试
jni不知道自己可能会用到哪些java函数,但是这个abstractJni已经实现了一些基本函数如 stringClass.getBytes 如果有新的 就需要我们自己补一些。:目前app的进度是c层的md5魔改 已经做好,又套了一层java层的加密。刚好可以再熟悉一下unidbg。下一篇加个registernative的函数 和oncreate的函数在app 中。先看下app 的反编译的结果,很明显,源码很清晰 ,之前的混淆方式一点用没有。最新版的app ,作为demo测试一下。unidbg代码如下。
2024-07-20 21:23:34
222
原创 基础篇-appdemo升级
接之前gitee,想做个许多按钮的app,包括各种加密,检测等。突然想到可以做一个类似yrx的web题目列表样式的app,开始试一下。
2024-07-11 03:14:20
78
原创 sha1以及hmac 算法细节
先变hex 再补80 00 到512 bit ,这就是k·ipad之后的数据 和 明文的Hex形式 进行级联。opad之后的数据 与hash结果 进行级联。吧前面的k`和0x5c进行抑或 ,先把明文hex 比如koohai。级联后的数据 进行一次hash。级联后的数据 进行一次hash。比如key是 a123456。和0x36抑或 xor。和之前的hash 进行拼接。然后和上面的值进行拼接。扩展到分组长度的key。
2024-06-27 21:35:21
167
原创 md5在ida中的识别
ida中 识别md5 ,先右键转为hex 或者按h在ida中当然也可以使用搜索search imdate-value 搜索立即数 0x67452301;这是上面的init中的state一个数···
2024-06-23 08:34:14
140
原创 md5在ida中的识别
ida中 识别md5 ,先右键转为hex 或者按h在ida中当然也可以使用搜索search imdate-value 搜索立即数 0x67452301;这是上面的init中的state一个数···
2024-06-23 08:32:45
606
原创 嵌入md5
一些set和get 是对基本变量的绑定 ,有用的只有这个 onMd5Click。cmakelists.txt : 把两个cpp 都导入。接下来进入正题,要在安卓中导入cpp,fragment中调用。
2024-06-19 01:40:05
68
原创 鸽鸽鸽 ~
同时也有一个基于react的前端xpath 可配置界面, 基于scrapy crawlspider的通用爬虫想法正在实现,基本功能如下。在gitee上放了个仓库,正向写个app的demo,方便逆向及hook。鸽了好久不想写东西。有初步demo 了就挂链接。
2024-05-28 01:29:52
235
原创 yrx第一题补环境
先在浏览器中试一下,发现浏览器正常输出,由于预先知道了是md5的魔改和aes 的魔改。魔改算法暂时水平还不够,只能先补补环境。先运行一下,发现报错,抛出异常了,我们把正常js 放浏览器看一下。今天来挑战一下入门级别的 猿人学第二届第一题(作者说简单到离谱) 我信个g~老头子坏得很。如图,代码是直接发送的请求,token是在发送的时候生成的。通过调试发现,如果浏览器的话, 就直接返回 0xbb76994f。稍微跟一下,就会发现js是在match1.js 中。但是和浏览器对比了一下,哎值不一样。
2024-04-29 23:19:10
84
原创 某h5set参数
对比一下标准算法,加密一致,分别是md5和sha256. ijk计算好以后,body对象通过sha256加密,生成新的一个json去获取h5sec.这个js 用了ob 混淆,为了省头发,全量抠一下拿下来。这个js 是用ast 预先大概处理了一下,只还原了函数,本地覆盖一下即可。通过对图二和图1 断点分析,可以发现在进入sign 以后有了h5set参数。是个异步函数,执行到刚才的js里 ,会返回个json,包含h5st 的参数。依然在还原过的js里寻找,会在上面发现如下的函数。这是图1 附近的一些js,
2024-02-22 16:46:23
202
原创 hook initarray,jni_onload,pthread (用来过检测),so调用栈,替换函数,hexdump,fridatrice,异常处理
总体来说,dlopen 用于在运行时加载共享库,而 init 和 init_array 则用于执行库的初始化工作。当一个共享库被 dlopen 加载时,如果该库包含一个名为 init 的特殊函数,系统将在加载后立即调用该函数。数组中的每个函数指针都指向一个初始化函数,这些函数在 init 函数执行后被调用,它们按照数组的顺序依次执行。通过 dlopen,可以在程序运行时加载共享库并获取其句柄,使得程序能够调用共享库中的函数。init_array 是一个包含函数指针的数组,其中的函数会在共享库加载时被调用。
2024-01-24 15:43:49
153
原创 so主動調用任意函數读写文件jni函数hook及调用so堆栈二级指针构造native在哪个so
分动态和静态 静态注册hook dlsym。推荐第一种 第二个要构造函数。确认native在哪个so。frida 读写文件。通过libc 写文件。主动调用需要二级指针。
2024-01-23 18:20:45
97
1
原创 frida java层加密自吐,修改str ,dlopen,内存读写,so内存dump
操作字符串的返回值1。操作字符串的返回值2。操作字符串的返回值3。
2024-01-23 11:26:50
439
1
原创 so入门分析
看一下堆栈 在jadx中,直接看 at com.maihan.tredian.net.MhRequestUtil.a(MhRequestUtil.java:19)在上层函数,用objection hook一下 确定了这个函数。说明 tzrd 是java 层的加密,账密iv都有了。更多内容请移步公众号一起学习,同篇笔记可能会有更新喔。拖进去打开一下 ,是导出函数、 f5 反编译一下。把这个参数解密一下: base64。去hook一下 这个 base64。实际上就是最后加了一串这个参数。
2024-01-22 15:50:09
685
原创 frida 持久化源码修改及效果
安卓13 新增类 在 “build/soong/scripts/check_boot_jars/package_allowed_list.txt”)).**一定要给so 放进去 data/local/tmp/tools/gadget/lib64/ **最重要 : 启动的时候加载gadget。把config.js写进去。
2024-01-22 12:49:46
292
原创 ndk基础
jniEnv 每个线程都有一个 每个线程生成的地址都不一样 主和子 env 的地址不一样。java nativate interface 允许java和 其他语言的交互。安卓 x86 v7a v8a app里面要提供,安卓才能跑起来。更多内容请移步公众号一起学习,同篇笔记可能会有更新喔。java层声明和调用 类似c++ .h。**jni创建java对象 构造函数 **javavm 每个进程只有一个。java 和cpp怎么关联。jnienv 获取方式。
2024-01-19 02:41:55
67
1
原创 ndk开发学习
jniEnv 每个线程都有一个 每个线程生成的地址都不一样 主和子 env 的地址不一样。java nativate interface 允许java和 其他语言的交互。安卓 x86 v7a v8a app里面要提供,安卓才能跑起来。更多内容请移步公众号一起学习,同篇笔记可能会有更新喔。java层声明和调用 类似c++ .h。**jni创建java对象 构造函数 **javavm 每个进程只有一个。java 和cpp怎么关联。jnienv 获取方式。
2024-01-16 23:51:38
57
1
原创 pixel6编译&kernelsu
首先按文档的方法,走了推荐的办法,下载androidImageKitchen,将AnyKernel3中的image 导出来后,按流程unpackimg ,repacking。然后在b站看到别人用的 android13-5.10.107_2022-11-**boot.img.gz **fastboot flash boot boot_new.img 后失败。aosp 内核 驱动。
2024-01-03 22:50:54
874
1
原创 逆向系列-小程序1
偶然发现 ,有个绿色的exe 挺好用,全名 unwxapp.exe ,可以解出来app.js,app.json。开始小程序系列,用了解包的第一个工具,结果解出来没有app.js 和app.json。报错处理–直接把值置空。
2023-12-19 23:05:41
1032
6
原创 app加固笔记
终返回一个DexFile结构体供虚拟机使用,函数的参数部分包含了内存中的dex文件的起始地址和大小,因此,在这里可以实现对app的脱壳。515 std::unique_ptr dex_file 是通过构造函数创建对象。fart: Artmethod::invoke函数中进行dumpcodeItem。dex2oat dex首次加载的时候 有个编译的过程 ,提高效率。youpk: 到了解释执行的函数中 dump codeItem。这就就到了 dexfile的构造函数 了 (xx也说过 )
2023-12-13 10:36:18
452
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人