反汇编
IT1995
每周个人笔记分享,欢迎广大网友查阅!
展开
-
Android逆向笔记-通过配置文件设置全屏(逆向开发与正向开发)
这里就是最简单的项目:源码打包下载:https://github.com/fengfanchen/AndroidReverse/tree/master/CrakDemo3这里首先用逆向改配置文件,然后再回编译实现全屏界面的过程:逻辑如下:界面文件为AndroidManifest.xml<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http:.原创 2020-07-05 15:56:22 · 994 阅读 · 0 评论 -
Android逆向笔记-单机游戏通过配置文件修改技能等
此处只说明思路,不举具体的例子,避免CSDN审核不通过。在安卓单机游戏中,要注意asserts/data文件夹下,此处有大量的xml文件。可以用字符串搜索。这里的skills就存储了技能,stores存储了礼包中金币、钻石、资源的数量。如下例子:钻石小宝箱,这里有个buyValue,值的就是数量,priceType就是要花的人民币。又如下:awardValue估计是值奖励值,将其修改:进入游戏看下效果:另外...原创 2020-07-05 13:40:23 · 4362 阅读 · 3 评论 -
Android逆向笔记-大部分内购游戏破解思路
最近出了几个Android逆向的笔记,CSDN审核不通过,在此不再做详细的笔记,仅是记录下思路,免得CSDN审核不通过。这里以单机游戏为例,大部分是单机内购游戏。2020-07-05 10:35:17目前在游戏购买时按下取消购买,就会提示道具下方失败,如果成功就是道具下发失败,如下:这里使用Android Killer进行搜索转成utf-8这里在将4个文件都进行修改。举个例子:以前这里是if-neq,改为if-eq,或者将if-nez改为if-eqz,这...原创 2020-07-05 10:43:37 · 7089 阅读 · 0 评论 -
Android逆向笔记-破解自己编写的Android应用程序(开发及破解)
这里开发使用的Android studio,使用的模拟器为:Pixel 2 API 22也就是Android 5的系统。这里演示下开发的程序:这里模拟了下激活程序,用户名是用户自己输入的,密码是用户名转md5后所有奇数项。也就是说123456789的密码为:323b453885f5181f的奇数项。关键代码如下:package com.example.crakdemo1;import androidx.appcompat.app.AppCompatActivity;im原创 2020-06-28 10:21:51 · 3019 阅读 · 0 评论 -
C++笔记-二级指针在反汇编中的形式
下面的程序都是x86程序。32位的程序如下代码:#include <iostream>using namespace std;void test() { cout << "Hello World" << endl;}int main(int argc, int *argv[]) { int *p = new int(10); in...原创 2019-12-31 08:41:12 · 5420 阅读 · 2 评论 -
OllyDbg笔记-Olly Advanced插件使用
将插件导入后这样就可以实时保存原创 2019-12-27 13:50:35 · 6183 阅读 · 0 评论 -
OllyDbg笔记-异常忽略相关设置
首先是OllyAdvanced插件中Options相关把这两个勾上这个其实对应的是这个在异常中设置再添加范围原创 2019-12-27 13:49:02 · 5877 阅读 · 0 评论 -
OllyDbg笔记-软件逆向调试技巧
在某些收费软件中,有些是通过注册表,来判断是不是使用到期,或者次数到了。OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点。软件断点就是常说的F12。而硬件断点它们只用于调试:用于调试,我们称为调试寄存器:Dr0~Dr7其中Dr0~Dr3四个寄存器用来存放中断地址,Dr4、Dr5保留不使用,Dr6、Dr7用来记录Dr0~Dr3的属性(如读,写还是执行,单位是字节,字...原创 2019-12-22 14:57:29 · 5275 阅读 · 0 评论 -
OllyDbg笔记-初识PE文件(nag窗口破解)
目录基本概念代码与实例基本概念这里主要是记录下PE文件结构:PE文件结构,它在硬盘上的存储结构跟载入内存时候的存储结构是一样的。在PE文件结构里边找出想要的东西,当这个文件映射到内存后,也可以很容易的找到它(因为OD是动态调试,程序需要先载入内存)。内存中的一个模块代表一个可执行文件进程所需要的所有代码、数据、资源的集合。PE文件结构:DOS head...原创 2019-12-09 20:47:16 · 5461 阅读 · 1 评论 -
OllyDbg笔记-寄存器以及各种关键指令解析(含简单程序破解)
目录基本概念代码与实例基本概念CPU中的9个寄存器:EAX:扩展累加寄存器EBX:扩展基址寄存器ECX:扩展计数寄存器EDX:扩展数据寄存器ESI:扩展来源寄存器EDI:扩展目标寄存器EBP:扩展基址指针寄存器ESP:扩展堆栈指针寄存器EIP:扩展的指令指针寄存器处理EBP、ESP、EIP,其他寄存器都能随意使用。EBP:主要用于...原创 2019-12-08 12:07:36 · 6868 阅读 · 1 评论 -
OllyDbg笔记-对标志寄存器中ZF的理解(逆向方面)
这里主要是第6位的ZF。zf (Zero Flag) 是零标志位,在第6位;它记录相关指令执行后,其结果是否为0,如果为0,那么zf = 1;否则zf = 0如下面的这个:这里要介绍两条命令:Jz=jumpif zero (结果为0则设置ZF零标志为1,跳转)Jnz=jump if not zeroZ这个标志位在程序判断的时候极为重要:比如下面的代码:v...原创 2019-12-05 22:13:41 · 8026 阅读 · 1 评论 -
反汇编基础-数据类型以及C++引用、指针反汇编后的概括
反汇编中的数据类型在汇编中,无论是字符串类型,整数类型还是其他类型都只有2个关键单位,地址、长度【注意:LEA为取地址指令】引用和指针的汇编代码:引用并不会影响程序的执行效率,使用引用又比指针多了编译器的检测所以在编写C++程序时应该抛弃指针,拥抱引用。const为编译期检查下面先来看一个C++源码:#include <stdio.h>int main(){ char *p_s...原创 2018-06-24 21:32:11 · 4360 阅读 · 1 评论 -
反汇编基础-数组和指针的反汇编代码分析
程序源码如下:#include <stdio.h>int main(){ const char c = 'A'; char str[] = "Hello World!"; str[0] = c; str[1] = 'B'; str[2] = 'C'; str[3] = 'D'; str[4] = 'E'; char *p_str = new char[5]; ...原创 2018-06-27 09:42:20 · 4920 阅读 · 1 评论 -
反汇编基础-加法的求值过程(各种类型)
首先看int型代码如下: int nOne = 0, nTwo = 0; nOne = 1 + 1; nOne = nOne + 1; nTwo = nOne + nTwo;这里先来一次人肉反汇编:mov [nOne],0mov [nTow],0mov eax,1add eax,1mov [nOne],eaxmov eax,[nOne]add eax,1mov [nOne]...原创 2018-07-04 09:39:05 · 5988 阅读 · 2 评论 -
反汇编基础-乘法与除法
首先来看乘法:两个变量之积 int nOne = 1; int nTwo = 2; int nOther = nOne * nTwo;其反汇编如下:从这里可以看到,两个变量之乘积,把nOne中的值放到ptr指向的地方,把2放到ptr指向的地址;把nOne的值给eaximul就是乘积,最后再把eax乘积的值放到nOther中。下面是一个变量的值乘一个常量:...原创 2019-04-19 00:03:53 · 6307 阅读 · 2 评论 -
反汇编基础-寄存器及内存
反汇编基础-寄存器及内存PC机中4大存储单元1.硬盘:长时间大量存储数据,因为硬盘速度慢,在程序运行时就将硬盘中的数据加载到内存中。2.内存:内存的存储速度比硬盘快,但还是没CPU快。3.高速缓存:保证CPU的速递,就在CPU中加入了高速缓存,对CPU中的数据进行预读,如果CPU下次运算需要的数据正好在高速缓存中,叫catch命中,否则为catch未命中,需要高速缓存又读取一次,高速缓存一般不需要...原创 2018-06-21 23:03:20 · 4958 阅读 · 1 评论