reverse
文章平均质量分 73
实践检验真理
hercu1iz
i am a robot.
展开
-
disassemble(1)
The simplest Functionint f(){return 123;};x86f:mov eax, 123retARMf PROC MOV r0,#0x7b ; 123 BX lr ENDPBX lr:跳转到LR寄存器(Link Register)里的地址执行。r0:保存返回地址的寄存器。MOV:ARM中的不是moved,而是copied的效果。MIPSMIPS通常有两种命名寄存器的方式:数字命名: (from $0 to $31)伪名命名: ($V原创 2021-12-25 14:32:57 · 216 阅读 · 0 评论 -
SMC技术
Self-modifying code 自修改代码转载 2021-06-11 20:11:29 · 260 阅读 · 0 评论 -
buuctf(re)
一日一re原创 2021-04-04 22:19:36 · 1174 阅读 · 0 评论 -
反汇编_for && 数据结构汇编存储方式
调试分析1.先分析个典型函数调用堆栈结构图中代码复制在下面,注释详解。142: int main(int argc, char* argv[])143: {00401590 push ebp 00401591 mov ebp,esp //前两行保存ebp寄存器00401593 sub esp,40h //开辟提升栈空间00401596 push ebx 00401597 push e原创 2021-03-24 00:59:51 · 139 阅读 · 0 评论 -
PE_进制本质|输出任意进制实例
进制进制本质概念任意进制输出实例进制本质概念进制是由元素组成的,N 进制就是有 N 个元素组成,逢 N 进一 任意进制输出实例问题描述:任意输入一个数,转化成你需要的任意进制打印。规律:进制就是一个一个的数数。#include<stdio.h>#include<stdlib.h> int main(){ char symbols[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B',原创 2021-03-06 14:21:27 · 76 阅读 · 0 评论 -
反汇编_switch特征
Switch特征<1>不超过3条分支结构#include<stdio.h>int main(){ int index = 1; scanf("%d",&index); switch(index) { case 1: printf("index == 1"); break; case 3: printf("index == 3"); break; case 100: printf("index == 100"); break; } retur原创 2021-02-22 17:08:12 · 211 阅读 · 0 评论 -
反汇编_else if特征
else if…#include<stdio.h>int main(){ int flag=0; if(flag > 0) { printf("%d\n",flag); } else if(flag == 0) { printf("else if \n"); } else { printf("else (flag < 0)\n"); } return 0;}汇编int main()3: {00401010 pus原创 2021-02-20 13:36:44 · 116 阅读 · 0 评论 -
反汇编_if...else特征
if…else特征#include<stdio.h>int main(){ int flag=0; if(flag==0) { printf("%d\n",flag); } else { printf("else \n"); } return 0;}汇编2: int main()3: {00401010 push ebp00401011 mov ebp,esp00401013 sub原创 2021-02-18 21:31:29 · 173 阅读 · 0 评论 -
反汇编_if特征识别
if特征标志#include<stdio.h>void main(){ int flag1=0; int flag2=0; int flag3=0; if(flag1==0) { printf("%d\n",flag1); } if(flag2 > 0) { printf("%d\n",flag2); } if(flag3 < 0) { printf("%d\n",flag3); } return 0;}汇编2: voi原创 2021-02-16 21:52:47 · 175 阅读 · 0 评论 -
杨辉三角形
题目:打印出杨辉三角形/*分析描述:;1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 …*/#include<stdio.h>void main(){ int i,j; int a[10][10]; printf("\n"); for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1; } fo原创 2021-02-15 22:53:04 · 186 阅读 · 0 评论 -
数组逆序打印
题目:将一个数组逆序输出。代码(当然还可以利用C++中堆栈方法等,这里就不扩展了关键看看编译器怎么写的汇编)#include<stdio.h>#define N 5int main(){ int a[N]={3,5,9,1,6},i,temp; printf("原始数据为:\n"); for(i=0;i<N;i++) printf("%4d",a[i]); for(i=0;i<N/2;i++) { temp=a[i]; a[i]=a[N-i-1];原创 2021-02-14 21:42:58 · 466 阅读 · 1 评论 -
斐波那契数列(Fibonacci sequence)
描述:斐波那契数列(Fibonacci sequence),指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n ≥ 2,n ∈ N)*递归方法int Fibon1(int n){ if (n == 1 || n == 2){ return 1; } else{ return Fibon1(n - 1) + Fibon原创 2021-02-13 22:14:20 · 2746 阅读 · 0 评论 -
求其最大公约数和最小公倍数
例题:输入两个正整数m和n,求其最大公约数和最小公倍数。TIP:两个数的最大公约数 x 最小公倍数 = M x N。/程序分析:利用辗除法。//* 除数变被除数 // 余数变除数 */#include"stdio.h"main(){ int a,b,num1,num2,temp; printf("please input two numbers:\n"); scanf("%d",&num1);//输入num1的值 scanf("%d",&num2);//输入num2原创 2021-02-12 21:40:32 · 296 阅读 · 0 评论 -
水仙花数
水仙花数例题:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153等于1的三次方+5的三次方+3的三次方。#include<stdio.h>#include<stdlib.h>int main(){ int i, j, k, n; printf("打印出的所有水仙花数分别为:"); for (n = 100; n<1000; n++) { i = n / 100;/*分解出百位原创 2021-02-11 21:57:14 · 739 阅读 · 3 评论