代码脚本解开法

#include <stdio.h>
int main(int argc, char* argv[]) {
char flag_data[] = {
220, 23, 191, 91, 212, 10, 210, 27, 125, 218,
167, 149, 181, 50, 16, 246, 28, 101, 83, 83,
103, 186, 234, 110, 120, 34, 114, 211};
char v7[] = {
84, -56, 126, -29, 100, -57, 22, -102, -51, 17,
101, 50, 45, -29, -45, 67, -110, -87, -99, -46,
-26, 109, 44, -45, -74, -67, -2, 106};
unsigned int v2;
unsigned char* v3;
// v11 = -478230444;
// v12 = -1709783196;
// v13 = 845484493;
// v14 = 1137959725;
// v15 = -761419374;
// v16 = -752063002;
// v17 = -74;
// v18 = -67;
// v19 = -2;
// v20 = 106;
// 方法一:类比写
for (int i = 0; i <= 6; ++i) {
v2 = ((v7[4 * i] & 0x000000FF) + ((v7[4 * i + 1] & 0x000000FF) << 8)
+ ((v7[4 * i + 2] & 0x000000FF) << 16) + ((v7[4 * i + 3] & 0x000000FF) <<
24)) ^ 0xDEADBEEF;
v3 = (unsigned char*)&v2;
for (int j = 3; j >= 0; --j) {
printf("%c", *(v3 + j) ^ flag_data[4 * i + j]);
}
}
// 方法二:按位异或,小端字节序,低位在低地址
// for (int i = 0; i <= 6; ++i) {
// printf("%c", v7[4 * i + 3] ^ 0xDE ^ flag_data[4 * i + 3]);
// printf("%c", v7[4 * i + 2] ^ 0xAD ^ flag_data[4 * i + 2]);
// printf("%c", v7[4 * i + 1] ^ 0xBE ^ flag_data[4 * i + 1]);
// printf("%c", v7[4 * i] ^ 0xEF ^ flag_data[4 * i]);
// }
return 0;
}

动态调试

这里得用Linux得gdb动态调试

win

ida

找到关键函数下断点

动态调试

这里不改寄存器,直接改函数,jz——>jnz

然后运行到函数结束,return处

但是程序得到不可打印字符,说明ida不行

然后od也差不多是一个意思了

GDB

用这个的话需要win结合一起用,因为需要在win的ida那里看地址

在ida中找到关键函数的地址

在gdb上下断点

mian函数下一个,防止一下子运行结束了

然后再到关键函数那里下一个

然后运行程序

然后运行到下一个断点

在这里的话因为是test eax eax,所以查看一下eax的值,果不其然为0,那么test就是0和0按位与,这样子的话最后导致的就是zf位为1,那么就会发生jz跳转,就会跳转到wrong的部分,所以要改变zf的结果,也就是要改变eax的值

test指令

zf位

所以操作为

最后得到结果

simple-check-100的更多相关文章

  1. java simple check whether a file or directory.

    Ref:  check whether a file or directory First, make sure the path exists by using: new File(path).ex ...

  2. zabbix simple check

    摘自: http://www.ttlsa.com/zabbix/zabbix-simple-checks/ 1. 开始 Simple checks通常用来检查远程未安装代理或者客户端的服务 使用sim ...

  3. Simple JavaScript Inheritance(John Resig)

    I’ve been doing a lot of work, lately, with JavaScript inheritance – namely for my work-in-progress ...

  4. (14)zabbix Simple checks基本检测

    1. 开始 Simple checks通常用来检查远程未安装代理或者客户端的服务 使用simple checks,被监控客户端无需安装zabbix agent客户端,zabbix server直接使用 ...

  5. springboot + rabbitmq发送邮件(保证消息100%投递成功并被消费)

    前言: RabbitMQ相关知识请参考: https://www.jianshu.com/p/cc3d2017e7b3 Linux安装RabbitMQ请参考: https://www.jianshu. ...

  6. (转载)springboot + rabbitmq发送邮件(保证消息100%投递成功并被消费)

    转载自https://www.jianshu.com/p/dca01aad6bc8 一.先扔一张图   image.png 说明: 本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认 ...

  7. jQ1.5源码注释以及解读RE

    jQ作为javascript的库( ▼-▼ ), 尽善尽美, 代码优美,  值得学习.  这一周平常上班没啥事也看jQ1.5的代码, 今天周六差不多看完了(Sizzle部分还没看), 重新看了一下, ...

  8. jQuery1.4源码解读

    来吧, 慢慢折腾吧 总结一下: jq1.4挺简单的, 正则写的不多, 看的都懂, 多写一些 三目写法到底要不要 特殊的地方的注释一定要有 /*! * jQuery JavaScript Library ...

  9. Libsvm:脚本(subset.py、grid.py、checkdata.py) | MATLAB/OCTAVE interface | Python interface

    1.脚本 This directory includes some useful codes: 1. subset selection tools. (子集抽取工具) subset.py 2. par ...

  10. 立即执行函数(IIFE)的理解与运用

    作为JavaScript的常用语法,立即执行函数IIFE(Immediately-Invoked Function Expression)是值得我们认真去学习探究的. 一.创建函数的两种方式 我们先从 ...

随机推荐

  1. 层叠样式表(CSS)2(环境:MyEclipse 10)

    二.选择器 注:在head里面写选择器的内容.环境一直不变,所有HTML和css都是这个MyEclipse 10 1.基本选择器(每个选择器新建一个HTML网页测试学习) 元素选择器:按节点名称匹配元 ...

  2. python: 判断是否是某一类型

    函数isinstance 语法 isinstance(object, classinfo) 参数 object -- 实例对象. classinfo -- 可以是直接或间接类名.基本类型或者由它们组成 ...

  3. NativeBuferring,一种零分配的数据类型[下篇]

    上文说到Unmanaged.BufferedBinary和BufferedString是NativeBuffering支持的三个基本数据类型,其实我们也可以说NativeBuffering只支持Unm ...

  4. 武汉工程大学第五届程序设计新生赛 I题 题解

    (2022,12,3) 原题链接(来自牛客竞赛) 抽象题意 题目有点长,我们需要抽象出一个模型: 一个长度为\(n\)的序列\(a_i\),从\(a_1\)开始向后跳,每次可以从\(a_i\)跳到下一 ...

  5. HTTPS 是这样握手的

    HTTP协议默认是明文传输,存在一定的安全隐患,容易被中间人窃听和攻击,在 加密解决HTTP协议带来的安全问题 中提到使用哈希.对称加密.非对称加密等方式对数据加密,能解决数据安全的问题. 以上加密方 ...

  6. [mysql]状态检查常用SQL

    前言 使用MySQL自身命令获取数据库服务状态. 连接数 -- 最大使用连接数 show status like 'Max_used_connections'; -- 系统配置的最大连接数 show ...

  7. 利用pytorch自定义CNN网络(一):torchvision工具箱

    本文是利用pytorch自定义CNN网络系列的第一篇,主要介绍 torchvision工具箱及其使用,关于本系列的全文见这里. 笔者的运行设备与软件:CPU (AMD Ryzen 5 4600U) + ...

  8. [FlareOn4]login-buu ctf

    打开压缩包 是个html,我直接???? 这不是web弄的吗 离谱了,不过f12还是会的 不过其中的逻辑还是比较清楚的 先用伪代码确定加密逻辑,再直接写直接进行爆破解码 wo cao,wrong!fl ...

  9. 0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) SQL注入+sudo提权

    0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) 系列专栏:Vulnhub靶机渗透系列 欢迎大佬:点赞️收藏关注 首发时间: 2023年8月22日 如有错误 ...

  10. MySQL——后码锁(Next-Key Block)

    众所周知,Mysql的事务隔离级别分为4个,分别是READ-UNCOMMITED,READ-COMMITED,REPEATABLE-READ,SERIALIZABLE,在常规数据库概论中,前三种事务隔 ...