PE头入口和代码开始不是一个概念
一个exe运行的时候需要借助其他的资源,也就是多个PE文件组成,每个pe文件都有自己的imagebase,为了保证主程序正常运行采用了,imagebase+OEP的方式定入口点
filebuffer在内存中与在硬盘里一模一样,buffer需要运行起来需要PE loader拉伸成windows系统遵守的格式
filebuffer拉伸成imagebuffer,通过PEloader加载
1、DOS头:
WORD
e_magic
“MZ标记”用于判断是否为可执行文件.
DWORD
e_lfanew
PE头相对于文件的偏移,用于定位PE文件
2、标准PE头:
WORD
Machine;
程序运行的CPU型号:0x0任何处理器/0x14C386及后续处理
WORD
NumberOfSections
文件中存在的节的总数,如果要新增节或者合并节就要修改这个值.
DWORD
TimeDateStamp;
时间戳:文件的创建时间(和操作系统的创建时间无关)
DWORD
PointerToSymbolTabl ...
下载12滴水官网https://www.bcdaren.com/download/downdesc/356797348753707008
winhex打开未运行的记事本
打开在内存中的记事本,运行记事本程序
对比普通程序从00000000开始
内存中的程序不是
普通程序有一块空白区
内存中的程序空白区比较大
PE.exe .dll .sys 开头都是4D5A,他们属于一种叫做可执行文件的头部标识
像.txt这类文件需要借助notepad等其它程序才能被打开的文件不属于可执行文件
不同的操作系统有不同的文件规范
PE结构分节每个程序都有自己独立的4GB虚拟空间,不同的编译器有不同的PE结构对齐方式,硬盘对齐200h字节和内存对齐1000h字节
程序分节方便多开等操作,只读数据区就不需要再开辟空间
左侧在硬盘里,右侧在内存里
块表,也叫节表,记录了程序的每节在内存中哪里开始哪里结束
PE头和DOS头会对这个文件做简单的描述,比对堆栈分多大,程序运行是一个拉伸过程
查找打开notepad.exe
DOS头,在内存中以字节为单位显示一般软件都是高位在前低位在后,两个十六进制数是一个 ...
目标:一名理解LLM的人工智能工程师,这需要拥有从零开始编写Transformer以及在GPU上微调LLM,自然语言处理(Natural Language Processing,NLP)等技能。
1 数学2 工具2.1 Python3 机器学习3.1从零开始动手实践3.2竞赛3.3做项目3.4部署项目3.5补充4 深度学习4.1 Fast.ai4.2参加更多竞赛4.3论文复现4.4计算机视觉4.5强化学习4.6 NLP5 大型语言模型5.1观看神经网络: 从零基础到高手5.2免费 LLM 训练营5.3使用LLMs构建应用5.4参加黑客松比赛5.5阅读论文5.6从头开始写 Transformers(5.7一些优质博客5.8观看 Umar Jamil的视频5.9学习如何运行开源模型5.10 提示工程5.11 微调LLM5.12 RAG6如何追踪前沿动态7其他有用的资源
#defineC语言变为exe的过程中需要经过替换,编译,链接三个阶段
define所做的工作就是在编译阶段之前完成替换,他可以实现一些函数的功能,函数在执行的时候需要分配堆栈,但是define不需要,更加节省空间
12345678910111213141516171819202122232425262728293031323334#include "stdafx.h"#include <stdlib.h>#include "windows.h"#define TRUE1 1#define PI1 3.1415926#define MAX(A,B) ((A)>(B)?(A):(B))void fun(){ printf("%d\n",TRUE1);}void fun1(){ printf("%f\n",PI1);}int fun2(int x,int y){ return MAX(x,y);}int main(int argc, ...
二进制
未读12笔记内容来自吾爱破解正己师傅https://www.52pojie.cn/thread-1692384-1-1.html
动态调试动态调试是指自带的调试器跟踪自己软件的运行,可以在调试的过程中知道参数或者局部变量的值以及履清代码运行的先后顺序。多用于爆破注册码
修改debug权限方法一:在AndroidManifest.xml里添加可调试权限
1android:debuggable="true"
方法二:XappDebug模块hook对应的app
端口转发开启adb
打开usb调试
jeb调试打开jeb,将demo拖到窗口中打开,查看demo第四关
尝试找出密钥
定位到check
debug模式启动程序12345adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivityadb shell am start -D -nadb shell am start -D -n 包名/类名am start -n 表示启动一个activityam start -D 表示将应用设置为可调试模式
...
12笔记内容来自吾爱破解正己师傅https://www.52pojie.cn/thread-1692384-1-1.html
广告类型弹窗
更新广告1.修改xml中的versiocode
绕过软件服务器和本地的版本进行判断不走更新的逻辑
横幅广告安卓四大组件
组件
描述
Activity(活动)
在应用中的一个Activity可以用来表示一个界面,意思可以理解为“活动”,即一个活动开始,代表 Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运行和启动,Activity的生命周期交给系统统一管理。
Service(服务)
Service它可以在后台执行长时间运行操作而没有用户界面的应用组件,不依赖任何用户界面,例如后台播放音乐,后台下载文件等。
Broadcast Receiver(广播接收器)
一个用于接收广播信息,并做出对应处理的组件。比如我们常见的系统广播:通知时区改变、电量低、用户改变了语言选项等。
Content Provider(内容提供者)
作为应用程序之间唯一的共享数据 ...
12笔记内容来自吾爱破解正己师傅https://www.52pojie.cn/thread-1692384-1-1.html
JVM、Dalvik、ARTJVM是JAVA虚拟机,运行JAVA字节码程序
Dalvik是Google专门为Android设计的一个虚拟机,Dalvik有专属的文件执行格式dex
Art(Android Runtime)相当于Dalvik的升级版,本质与Dalvik无异
smali语法smali是Dalvik的寄存器语言,smali代码是dex反编译而来的。
关键字
名称
注释
.class
类名
.super
父类名,继承的上级类名名称
.source
源名
.field
变量
.method
方法名
.register
寄存器
.end method
方法名的结束
public
公有
protected
半公开,只有同一家人才能用
private
私有,只能自己使用
.parameter
方法参数
.prologue
方法开始
.line xxx
位于第xxx行
数据类型对应
sma ...
12笔记内容来自吾爱破解正己师傅https://www.52pojie.cn/thread-1692384-1-1.html
apk文件结构APK (Android application package)指 Android 应用程序包,是 Android 系统中的一种文件格式,用来对安卓应用程序的文件进行打包。
选择使用压缩软件打开即可看见资源内容
文件
注释
assets目录
存放APK的静态资源文件,比如视频,音频,图片等
lib 目录
armeabi-v7a基本通用所有android设备,arm64-v8a只适用于64位的android设备,x86常见用于android模拟器,其目录下的.so文件是c或c++编译的动态链接库文件
META-INF目录
保存应用的签名信息,签名信息可以验证APK文件的完整性,相当于APK的身份证(验证文件是否又被修改)
res目录
res目录存放资源文件,包括图片,字符串等等
AndroidMainfest.xml文件
APK的应用清单信息,它描述了应用的名字,版本,权限,引用的库文件等等信息
classes. ...
12笔记内容来自吾爱破解正己师傅https://www.52pojie.cn/thread-1692384-1-1.html
模拟器安装使用雷电模拟器
夜神模拟器亲测有bug
Magisk
1. MagiskSU(Root 权限管理)作用:为应用程序提供系统级 root 访问权限。使用场景:
案例:当你想使用「钛备份」备份手机系统应用数据时,需通过 MagiskSU 授权其 root 权限,才能访问系统分区内的应用数据。
典型需求:修改游戏存档(如《原神》本地数据)、禁用系统预装广告软件(如小米手机内置应用)。
2. Magisk 模块(系统功能扩展)作用:通过安装模块动态修改只读系统分区,实现功能增强或定制。使用场景:
案例:安装「Pixelify」模块,让非 Google Pixel 手机(如一加设备)获得 Pixel 专属功能(如动态照片、语音降噪)。
典型需求:添加全局 Dolby Atmos 音效、启用隐藏的 90Hz 屏幕刷新率(如部分手机厂商限制的功能)。
3. MagiskHide / Shamiko(Root 隐藏)作用:隐藏 ...
数组指针本质就是一个指针
多维数组指针指向一维数组
12345678910111213141516171819202122232425262728293031#include "stdafx.h"char arr[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x07,0x09, 0x00,0x20,0x10,0x03,0x03,0x0C,0x00,0x00,0x44,0x00, 0x00,0x33,0x00,0x47,0x0C,0x0E,0x00,0x0D,0x00,0x11, 0x00,0x00,0x00,0x02,0x64,0x00,0x00,0x00,0xAA,0x00, 0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x02,0x00,0x74,0x0F,0x41,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x0 ...









