汇编&&虚拟机动态调试&&安卓逆向动态调试

[BJDCTF 2nd]8086

要先学一下汇编指令

这是一个直接看汇编的题(题目就是8086),因为XYCTF遇上了就去搜了一下

拖入exe啥也不知道,直接拖入ida看一下

啥也没有点进dseg看

汇编界面加注释是用“;”加点注释分析一下

 写出脚本得到flag

#include <stdio.h>
#include <string.h>
int main() 
{
    char a[] = "]U[du~|t@{z@wj.}.~q@gjz{z@wzqW~/b";
    
    int i;
	for (i=0;i<=strlen(a);i++)
	{
		a[i]^=31;
		
		printf("%c",a[i]);
	 } 

    return 0;
}//BJD{jack_de_hu1b1an_xuede_henHa0}

NKCTF-REEZ 

这道题用到了虚拟机和D-810去混淆

虚拟机:

现在ida中打开exe文件

1.虚拟机(先打开)

2.把ida里面的两个文件拖进去,在虚拟机桌面创建一个ida文件夹放入这两个文件

3.打开终端输入命令chmod 777 linux_server64(也可以直接将那个文件拖入)

4.继续输入命令.\linux_server64

5.重新开一个终端输入ifconfig命令

6.复制ip,放入框中的Hostname

想起来有之前培训的ppt(我懒)

D-810

对着数据去混淆

1.Edit->Plugins->D-810

2.出现这个界面然后点start,等一会儿回到之前的界面。按F5之后就可以去混淆了

之后大概就清晰很多了

题解

先拖入exe,发现是64位,然后拖入ida64,F5进入伪代码(什么也看不出来)

动态调试 之后会多出来一个文件,然后直接拖入ida

查看,应该是一个z3

去混淆,点start

 回到之前界面按F5就好了

 源码

int __cdecl main(int argc, const char **argv, const char **envp)
{
  bool v3; // zf
  const char *v4; // rdi
  int v6; // [rsp+4h] [rbp-204h]
  __int64 v7; // [rsp+8h] [rbp-200h]
  char v8; // [rsp+17h] [rbp-1F1h]
  __int64 v9; // [rsp+18h] [rbp-1F0h]
  char *v10; // [rsp+20h] [rbp-1E8h]
  __int64 v11; // [rsp+28h] [rbp-1E0h]
  char v12; // [rsp+37h] [rbp-1D1h]
  __int64 v13; // [rsp+38h] [rbp-1D0h]
  __int64 v14; // [rsp+40h] [rbp-1C8h]
  __int64 v15; // [rsp+48h] [rbp-1C0h]
  __int64 v16; // [rsp+58h] [rbp-1B0h]
  __int64 j; // [rsp+70h] [rbp-198h]
  __in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值