5.elf教会了我需要注意数据的类型与数据的长度,不然也容易犯错误
关键在于看懂那几个强制类型转化,和运算符的顺序
其main函数为
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869i...
装好了ubuntu
它的glibc版本够用
通过动态调试找到了其存储数据的正确顺序
先依次输入数组中存起来备用
123456789101112if ( v3 == v9 ) { for ( i = 0; i <= 16; ++i ) { if ( (unsigned __int8)s[i] > 0x60u && (un...
学习报告(一到二周)语言学习汇编语言已基本了解其使用语法,及其功能(函数调用,返回父函数)
mov,jmp,push,pop(基本语句)
call(调用子函数),ret(返回父函数),leave(将栈中的指向子函数地址去除,恢复父函数指令)
stack用法存储函数在内存中的位置,存储变量,存储命令等
C语言基本理解指针用法(用于指向变量地址),可用于子函数中调用外部变量,也可用于间接修改和间...
学习报告(三到四周)base16可通过位运算(高效率)进行加密
基本已经知道其加密模式
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#i...
寄存器在动态调试中需知道各寄存器意义及作用
寄存器分为两类,通用寄存器和特殊寄存器。
通用寄存器
EAX(寄存器寄存器-累加器):最常用于算术,逻辑和数据传输指令、乘法和除法运算使用此寄存器。对于Windows API函数,函数的返回值通常将存储在EAX寄存器中。
EBX(基址寄存器):EBX寄存器可以直接访问存储器数据,它也是一个通用寄存器。
ECX(计数寄存器):ECX是一个共享寄存器,...
汇编语言cpu中储存需要用到的数值地址之类的名叫寄存器(AX,BX,CX诸如此类)。
cpu执行命令是按次序进行的通过cs,ip共同决定cs(段地址),ip(偏移地址)
cs*16+ip便为此次命令的地址,若此次命令并不改变cs或ip,则ip+3或2(由下条命令长度决定)
然后执行下次命令。如下图(由左至右CS:IP,指令在十六进制下的表现,指令含义)
工具Dosbox常用命令
r命令-展...
RE1.PYC先启动该文件看下运行结果
不知道是因为什么无法再次运行,通过搜索找到是因为没有原py文件所以无法再次运行,那就通过ida(32位)看看其源代码
pyc文件主要是无法通过f5反汇编查找代码逻辑
尝试通过shift+f12查询字符串,结果如下
一般有效的字符串,线索之类的会出现在此,如果不有效也一般会放在内存附近(一般)
通过双击寻找,往上翻后最终找到了对应的密文(非flag...
尝试对3.elf进行动态调试
寄,我的glibc库版本低了
但根据2.elf的经验,其存储顺序应该是按上到下的顺序存储的,从低位到高位存储的
同时这个每两位就代表了一个字符刚好就有42个字符符合校验的字符个数
所以z3破解代码为
12345678910111213141516171819202122232425262728293031323334353637383940414243444...
通过进行动态调试发现确实
![image-20230104221103045](E:\note\re\pythonz3\2.elf z3暴力破解.assets\image-20230104221103045.png)
此处是进行校验的字符串
但是开始我所理解的顺序不是从左到右而是从低位到高位如图
![image-20230104221209637](E:\note\re\pythonz3\2...
源代码如下
123456789101112131415161718192021222324252627282930313233343536373839404142unsigned __int64 level1(void){ char v1; // [rsp+Fh] [rbp-81h] int v2; // [rsp+10h] [rbp-80h] int i; // [rsp+...