JNIwhat 什么是JNI?*java native interface native 本地语言 系统是由什么开发的 linux是由c开发的 那么这种语言对于这个系统来说就是本地语言 *native 本地语言 本地代码 *作用是java 和c/c++相互调用 jni 实质是一个接口 java的方法调用c的函数 jni 相当于是 把c/c++函数翻译成java 也可以把java翻译成c
转载 2024-07-09 17:07:50
14阅读
        Android inline hook一般基于这个函数,使用ptrace函数attach一个目标进程,注入定制的so库进入目标进程的地址空间,然后用so里边的函数地址替换目标进程地址空间里原有的函数地址,目标进程运行到原有函数地址时,就会进入你的so库中的函数,而你的函数一般需要将当时目标进程现场保存起来(原函数
转载 2024-03-21 10:51:30
102阅读
手潮了,长时间不做逆向水平就会下降。再次记录一次逆向手段。这次争取写的更全面一些。之前的CSGO只是在windows上的一次简单实践,只是完成了glow esp。这次在Mac OS上进行实践。目标:血量、子弹、弹夹数的修改。TODO:透视、auto aim手段:找到血量、子弹等属性的内存地址,通过这些内存地址反向推理player对象或者结构体的base address和属性的offset。知识:内
转载 2024-04-25 16:55:19
197阅读
2017-05-20聚会回来一如既往的看了会羽毛球比赛,然后想到前几天和朋友讨论的逆向映射的问题,还是简要总结下,免得以后再忘记了!可是当我添加时间……这就有点尴尬了……520还在写技术博客…… 闲话不多说,之前一个问题是想要根据物理页框号得到映射的虚拟地址,一时间不知道如何下手了,在群里和一个朋友讨论了一番,记得之前看swap机制的交换缓存时,记载说系统当要换出一个页面时,可以很容易找
题目是新手笔记,大佬别看了.最重要的第一点,一定要懂正向,了解数据结构,脑中构思功能间的调用关系.比如打怪功能.,点击怪物之后触发的功能调用可能如下鼠标点击CALL { ..判断点的什么东西call { ....选中怪物call { ......走路call { ..........攻击call { 技能CALL { ... ... } } } } } } 这是调用关系的构思,同时还要捋
cocos2d-x先clonegit clone地址 https://github.com/cocos2d/cocos2d-x.gitlua虚拟机相关代码在cocos2d-x\cocos\scripting\lua-bindings\manual里CCLuaEngine.h    引擎CCLuaStack.h      栈进入虚
转载 2024-07-31 20:42:55
237阅读
前言  上一篇,聊到逆向分析是找偏移,有依据地找,效率会快。这一篇聊下找偏移方法。只说概念,具体的细节,后续会配合实战再展开细说。 找偏移的方法1、内存  逆向的目的,是找功能或者数据在内存的地址。最直接的方法,就是在内存里面搜索。   对于数据:可以直接在内存搜索。  对于功能:如果知道代码的特征码,也可以直接在内存寻找。  (所谓代码的特征码,具体是一串字符串,在内存是唯一
一些公用类:    @interface ClassCustomClass :NSObject{ NSString *varTest1; NSString *varTest2; NSString *varTest3; } @property (nonatomic,assign)NSString *varTest1
lua 中,我们可以用 userdata 保存一个 C 结构。当我们为 lua 写扩展时,C 函数中可以利用  lua_touserdata 将 userdata 转换为一个 C 结构指针。 但是,有时候我们却需要把一个指针转换回 lua 中的 userdata 对象。用到它的最常见的地方是封装 GUI ,通常 GUI 的底层是用 C 编码的。当 engine 把鼠标位置或是别的消息拦
转载 2024-05-09 10:26:06
96阅读
C语言的循环结构有for循环、while循环、do循环和goto循环。本文介绍前3种循环方式。1. for循环结构for循环也可以称为步进循环,它的特点是常用于已经明确了循环的范围。看一个简单的C语言代码,具体如下:#include int main() { int nNum=0,nSum=0; for ( nNum=1; nNum<= 100; nNum ++ ) { nSum += nN
最近想要逆向一个Unity游戏,游戏使用的Unity版本是2020.3.17 无奈dnSpy官方仓库提供的版本直到2019.2.1,想要2020的dll只能自己生成,踩了非常多的坑,特地记录一下首先进入dnSpy-Unity-mono官方仓库,然后跟着它的README一步步走。第一步Pull in the latest Unity mono.dll source code (either git
转载 2024-04-15 23:26:23
264阅读
    Modern Binary Exploitation是教授二进制漏洞和逆向工程方面的实战攻击技巧的课程,课程安排结合课程教授和动手实践提供学生探索快速发展的安全领域中常用思路和技巧的机会。这里记录笔者根据课程网站学习的 lecure 1 关于逆向以及其常用工具的知识,以供参考和查阅。 lecure 1:逆向及常用工具  主要思路:(1)静态 + 动态调试结合
单向散列算法之——MD5算法MD5算法(Message-Digest Algorithm 5)属于单向散列算法的一种。它的功能是将任意长度的消息在经过处理后输出一个128位的信息,从而实现加密,此加密不可逆,即无法通过密文反推出输入的信息。1、算法原理(1)数据填充填充待加密的消息使其长度与448模512同余(即消息长度=448mod512,byte=56mod64)。因此,消息的长度被拓展至N*
转载 2024-03-15 05:34:29
201阅读
除此以外,还需要:PETools:查看exe基本信息,在GitHub上开源。UPX.exe:exe加壳工具,也可以用来去UPX壳(但连变种的UPX壳都没法去~),在GitHub上开源。JEB:参考h鶸的文章安装即可? uncompyle6:把pyc转为python。pip install uncompyle6 Linux的file命令可以帮助我们分析一个未知文件的基本信息。 文章目录buu-eas
转载 2024-05-10 13:54:39
67阅读
前言NSA开源的逆向工具Ghidra,使用Java开发,可作为IDA的替补。下面以bugku逆向模块第一题为例,使用Ghidra分析可执行文件。使用过程首先新建项目,并导入这道题的文件baby.exe。下图是导入的文件的摘要: 导入后,要分析的文件已在项目中显示,如下图所示。双击baby.exe,Ghidra将对其分析,然后进入代码浏览器。分析前弹出一个方框,勾选分析选项:在此先将这些选项的含义记
                           
转载 2021-04-14 18:39:00
111阅读
2评论
一、所需工具一台已Root的手机(不建议安卓版本高于8.1,IOS不会)xposed、xposed Install(XAppDebug、Build PropEnhancer、JustTrystMe…)charles(或其他抓包http工具)、Wireshark(socket、tcp、ip、tcp/ip 等)非http请求需要它Android Studio(我使用的是Smail打桩进行动态调试,需要
当前版本的Unity(截至Unity5.5.x)中TextAsset类不支持后缀为lua的文件,将lua文件导入到项目中后,其会被识别为类型为DefaultAsset的文件,即不被Unity原生支持。此外在编辑器模式下也无法直接创建lua文件,需要在文件夹中手动进行创建。经过一番探索,简单实现了在编辑器中创建lua文件和预览lua文件的功能。  一.在编辑器下创建Lua文件打开
有空找些CrackMe来让脑子转一转还是挺有意思的。这道题据说是一道Android逆向工程师的面试题。给的APK是一个服务端程序,要求写一个客户端来解密来自服务端的数据。把APK拖到JEB,直接看MainActivity,如图:image.pngMainActivity启动后,就会创建一个子线程去做一些事,而且这里加载了一个动态库,估计线程做的事情是在Native层实现的。image.png如上图
网络游戏逆向分析-9-自动更新基址基址在每次更新之后都会修改,这个比较麻烦,不然每次都得重新找,非常消耗体力和时间。 自动更新基址原理搜索游戏进程的内存,然后把硬编码依次和内存里面数据进行匹配,匹配到了之后就返回地址,地址附近就是基址了,通过加减来得到基址。这里要扯到一些关于硬编码和机器指令的问题了,从整个计算机来看实际上要跑的东西在CPU上,只能识别0和1,但是为了后面的多种多样功能,
  • 1
  • 2
  • 3
  • 4
  • 5