JarvisOJ basic部分WriteUp

jarvisoj WEB +MISC writeup WEB PORT 51 Login LOCALHOST 神盾局的秘密 IN a mess Easy Gallery Simple Injection 方法一 方法二 api的调用 PHPINFO 阅读详情

0x0 前言

由于开学后会有一个省赛,作为一个好久没做过除re以外ctf题的小白,不得不抽出时间来刷一刷题…通过做JarvisOJ的basic部分确实学到了不少东西,感谢~

0x1 base64?

1.题目描述

GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI===

2.解题过程

base64?应该是base家族的,写个脚本decode一下。

import base64
str1='GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI==='
try:
    print base64.b64decode(str1)
except:
    try:
        print base64.b32decode(str1)
    except:
        print base64.b16decode(str1)

得到结果504354467b4a7573745f743373745f683476335f66346e7d,很明显,十六进制转字符就可以了~

flag=''
key='504354467b4a7573745f743373745f683476335f66346e7d'
for i in range(0,len(key),2):
    flag+=chr(int(key[i:i+2],16))
print flag

得到flag:PCTF{Just_t3st_h4v3_f4n}

0x2 关于USS Lab.

题目描述

USS的英文全称是什么,请全部小写并使用下划线连接_,并在外面加上PCTF{}之后提交

解题过程

百度uss lab可以搜到
usslab
OK,flag得到了。

0x3 veryeasy

题目描述

使用基本命令获取flag

解题过程

使用srings得到flag.
veryeasy

0x4 段子

题目描述

程序猿圈子里有个非常著名的段子:

手持两把锟斤拷,口中疾呼烫烫烫。

请提交其中”锟斤拷”的十六进制编码。(大写)

FLAG: PCTF{你的答案}

解题过程

对于不会的东西需要百度…
duanzi
好了,将三个字拼起来就得到了flag:PCTF{EFBFBDEFBFBD}

0x5 手贱

题目描述

某天A君的网站被日,管理员密码被改,死活登不上,去数据库一看,啥,这密码md5不是和原来一样吗?为啥登不上咧?

d78b6f302l25cdc811adfe8d4e7c9fd34

请提交PCTF{原来的管理员密码}

解题过程

在上面不容易看出,复制到别的地方还是可以轻松的发现上面md5比正确的值多了一位l。去掉l后得到d78b6f30225cdc811adfe8d4e7c9fd34,进行md5解密后即可。

题目描述

出题人丢下个logo就走了,大家自己看着办吧

解题过程

运用StegSolve的Frame Brower功能可以在第二桢中得到flag。
logo

0x7 veryeasyRSA

题目描述

已知RSA公钥生成参数:

p = 3487583947589437589237958723892346254777 q = 8767867843568934765983476584376578389

e = 65537

求d =

请提交PCTF{d}

Hint1: 有好多小伙伴问d提交什么格式的,现在明确一下,提交十进制的d

解题过程

运用RSA Tool计算出d.
veryeasyRsa

0x8 神秘的文件

题目描述

出题人太懒,还是就丢了个文件就走了,你能发现里面的秘密吗?

解题过程

利用linux的file得知所给文件为磁盘文件。
将磁盘文件挂载

mkdir ffffile &&sudo mount haha ffffile

挂载后可以查看文件中的内容
我们发现里面是253个只包含一个字符的文件
猜测可以把这些字符拼接起来得到flag.

flag=''
for i in range(254):
    file=open('ffffile/'+str(i))

    flag+=file.read()
    file.close()
print flag

file

0x9 公倍数

题目描述

请计算1000000000以内3或5的倍数之和。

如:10以内这样的数有3,5,6,9,和是23

请提交PCTF{你的答案}

解题过程
sum=0
for i in xrange(1000000000):
    if i%3==0 or i%5==0:
        sum+=i
print sum

一个简单的小脚本得到flag,这里注意一定要用xrange,不要用range!

0x10

题目描述

都说逆向挺难的,但是这题挺容易的,反正我不会,大家来挑战一下吧~~:)

解题过程

载入IDA,很容易就能找到关键代码

*(_WORD *)v5 = 0xDDABu;
  v5[2] = 0x33;
  v5[3] = 0x54;
  v5[4] = 0x35;
  v5[5] = 0xEFu;
  printf((unsigned __int64)"Input your password:");
  _isoc99_scanf((__int64)"%s", v6, *(_QWORD *)v5);
  if ( strlen(v6) == 26 )
  {
    v3 = 0LL;
    if ( (v6[0] ^ 0xAB) == list1 )
    {
      while ( ((unsigned __int8)v6[v3 + 1] ^ (unsigned __int8)v5[(signed __int64)(((signed int)v3 + 1) % 6)]) == list[v3] )
      {
        if ( ++v3 == 25 )
        {
          printf((unsigned __int64)"Congratulations!");
          return 0;
        }
      }
    }
  }
  printf((unsigned __int64)"Password Wrong!! Please try again.");
  return 0;
}

逆一下代码写脚本得到flag.

v5=[0xAB,0xDD,0x33,0x54,0x35,0xEF]
lists = [0xfb,0x9e,0x67,0x12,0x4e,
         0x9d,0x98,0xab,0x00,0x06,
         0x46,0x8a,0xf4,0xb4,0x06,
         0x0b,0x43,0xdc,0xd9,0xa4,
         0x6c,0x31,0x74,0x9c,0xd2,
         0xa0]
flag=chr(v5[0]^lists[0])
for i in xrange(1,len(lists)):
    flag+=chr(v5[i%6]^lists[i])
print flag

得到flag:
PCTF{r3v3Rse_i5_v3ry_eAsy}

0x11 Secret

题目描述

传说中的签到题

题目入口:http://web.jarvisoj.com:32776/

Hint1: 提交格式PCTF{你发现的秘密}

解题过程

查看响应头,可以找到疑似flag的字符串..
secret
提交上去没想到竟然是对的。

0x12 爱吃培根的出题人

题目描述

听说你也喜欢吃培根?那我们一起来欣赏一段培根的介绍吧:

bacoN is one of aMerICa’S sWEethEartS. it’s A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE

什么,不知道要干什么?上面这段巨丑无比的文字,为什么会有大小写呢?你能发现其中的玄机吗?

提交格式:PCTF{你发现的玄机}

解题过程

提示培根加密,直接用脚本,不过脚本得到的flag多了一个字母…不知道哪儿出了问题。

#coding:utf-8
import string
letters=string.uppercase
a="bacoN is one of aMerICa'S sWEethEartS. it's A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE"
str1=''
str2=''
key1={"A":"aaaaa","B":"aaaab","C":"aaaba","D":"aaabb","E":"aabaa","F":"aabab","G":"aabba","H": "aabbb","I":"abaaa","J":"abaab","K":"ababa","L":"ababb","M":"abbaa","N":"abbab","O":"abbba","P":"abbbb","Q":"baaaa","R":"baaab","S":"baaba",
"T":"baabb",
"U":'babaa',
'V':'babab',
'W':'babba',
'X':'babbb',
'Y':'bbaaa',
'Z':'bbaab'}
key2={'a':'AAAAA','g':'AABBA','n':'ABBAA','t':'BAABA',
'b':'AAAAB','h':'AABBB','o':'ABBAB','u':'BAABB','v':'BAABB',
'c':'AAABA','i':'ABAAA','j':'ABAAA','p':'ABBBA','w':'BABAA',
'd':'AAABB','k':'ABAAB','q':'ABBBB','x':'BABAB',
'e':'AABAA','l':'ABABA','r':'BAAAA','y':'BABBA',
'f':'AABAB','m':'ABABB','s':'BAAAB','z':'BABBB'}
list1=[]
list2=[]
temp1=''
temp2=''
num=0
for i in a:
    if i.isupper():
        temp1+='b'
        temp2+='B'
        num+=1
        if num%5==0:
            list1.append(temp1)
            list2.append(temp2)
            temp1=''
            temp2=''
    elif i.islower():
        temp1+='a'
        temp2+='A'
        num+=1
        if num%5==0:
            list1.append(temp1)
            list2.append(temp2)
            temp1=''
            temp2=''
#
for i in list1:
    for j,k in key1.items():
        if i==k:
            str1+=j
print "第一种:"
print str1+'\n'
for i in list2:
    for j,k in key2.items():
        if i==k:
            str2+=j
print "第二种:"
print str2

0x13 Easy RSA

题目描述

还记得veryeasy RSA吗?是不是不难?那继续来看看这题吧,这题也不难。

已知一段RSA加密的信息为:0xdc2eeeb2782c且已知加密所用的公钥:

(N=322831561921859 e = 23)

请解密出明文,提交时请将数字转化为ascii码提交

比如你解出的明文是0x6162,那么请提交字符串ab

提交格式:PCTF{明文字符串}

解题过程

已知N、e可以计算出d,这里仍然可以用RSA Tool。
这里写图片描述
然后再利用 密文=明文^d mod N的公式计算出密文,最后将密文转化为ascii就好了。
这里写图片描述
最后得到flag为PCTF{3a5Y}

0x14 ROPGadget

题目描述

都说学好汇编是学习PWN的基础,以下有一段ROPGadget的汇编指令序列,请提交其十六进制机器码(大写,不要有空格)

XCHG EAX,ESP

RET

MOV ECX,[EAX]

MOV [EDX],ECX

POP EBX

RET

提交格式:PCTF{你的答案}

解题过程

一开始我试图用pwntools的asm函数去求flag,不过不幸的是失败了。然后又想到利用od去求,幸好这次成功了。
ROP
将十六进制拼接起来既是flag。

0x15 取证

题目描述

有一款取证神器如下图所示,可以从内存dump里分析出TureCrypt的密钥,你能找出这款软件的名字吗?名称请全部小写。
quzheng

解题过程

以前没接触过只好百度了,不过得到好多结果,最后试出flag为PCTF{volatility}

0x16 熟悉的声音

题目描述

两种不同的元素,如果是声音的话,听起来是不是很熟悉呢,据说前不久神盾局某位特工领便当了大家都很惋惜哦

XYYY YXXX XYXX XXY XYY X XYY YX YYXX

请提交PCTF{你的答案}

解题过程

先将上面字符串转化为-.组成的字符串

def getMorse(s):
    morse=''
    for i in range(len(s)):
        if s[i]=='X':
           morse+='.'
        elif s[i]=='Y':
            morse+='-'
        else:
            morse+=s[i]
    return morse
s='XYYY YXXX XYXX XXY XYY X XYY YX YYXX'
print getMorse(s)

得到-… .— -.– –. -.. - -.. .- ..–
然后找一个摩斯密码解密的网站得到JBLUWEWNZ。本来以为到这就完了,结果提交上去并不对..需要凯撒解密才可以得到flag~

#http://rot13.de/index.php

s="JBLUWEWNZ"
for j in xrange(26):
    flag=''
    print str(j)+':',
    for i in s:
        if(i>='A' and i<='Z'):
            temp = ord(i) + j
            if temp>ord('Z'):
                temp = temp - 26
            flag +=chr(temp)   


        elif i>='a' and i<='z':
            temp = ord(i) + j
            if temp>ord('z'):
                temp = temp -26
            flag +=chr(temp)                

        else:
            flag +=i
    print flag

0x16 Baby’s Crack

题目描述

既然是逆向题,我废话就不多说了,自己看着办吧。

解题过程

载入IDA找到关键代码
crackme
我这采用了爆破的方法解密文件.
最后将解密的十六进制转为字符即可得到flag.

file=open('flag.enc','r')
s=file.read()
flag=''
for i in range(len(s)):
    for j in range(128):
        if j>47 and j<=96:
            k=j+53
            if k==ord(s[i]):
                flag+=chr(j)
                break
        elif j<=46:
            k=j+j%11
            if k==ord(s[i]):
                flag+=chr(j)
                break
        else:
            k=j-j%61
            if k==ord(s[i]):
                flag+=chr(j)
                break
print flag  
file.close()
key=''
for i in range(0,len(flag),2):
    key+=chr(int(flag[i:i+2],16))
print key

0x17 Help!!

题目描述

出题人硬盘上找到一个神秘的压缩包,里面有个word文档,可是好像加密了呢~让我们一起分析一下吧!

解题过程

下载下来后发现是个被加密的压缩包,这里是伪加密,用ZipCenOp轻松去掉伪加密后获得一个word文件。
关于word我至今只做过解压和利用word软件的隐藏字符功能两类题目,这儿是解压。
解压后得到flag:PCTF{You_Know_moR3_4boUt_woRd}。

0x18 Shellcode

题目描述

作为一个黑客,怎么能不会使用shellcode?

这里给你一段shellcode,你能正确使用并最后得到flag吗?

解题过程

一个shellcode当然是要执行啊!

#include <stdio.h>

unsigned char shellcode[] = "\x50\x59\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x37\x51\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41\x42\x75\x4a\x49\x59\x49\x68\x6b\x6d\x4b\x7a\x79\x43\x44\x71\x34\x6c\x34\x46\x51\x79\x42\x6c\x72\x52\x57\x45\x61\x68\x49\x31\x74\x4c\x4b\x54\x31\x36\x50\x6e\x6b\x31\x66\x74\x4c\x6e\x6b\x50\x76\x77\x6c\x6e\x6b\x57\x36\x66\x68\x4e\x6b\x61\x6e\x35\x70\x4e\x6b\x67\x46\x36\x58\x50\x4f\x52\x38\x54\x35\x48\x73\x43\x69\x76\x61\x4e\x31\x39\x6f\x6b\x51\x53\x50\x6c\x4b\x52\x4c\x76\x44\x36\x44\x4e\x6b\x33\x75\x65\x6c\x4e\x6b\x70\x54\x74\x68\x52\x58\x75\x51\x39\x7a\x6e\x6b\x32\x6a\x45\x48\x4c\x4b\x31\x4a\x61\x30\x46\x61\x58\x6b\x68\x63\x54\x74\x42\x69\x6e\x6b\x34\x74\x6c\x4b\x55\x51\x68\x6e\x76\x51\x59\x6f\x74\x71\x6f\x30\x79\x6c\x6e\x4c\x4d\x54\x4f\x30\x53\x44\x45\x57\x5a\x61\x68\x4f\x74\x4d\x77\x71\x68\x47\x38\x6b\x58\x74\x65\x6b\x73\x4c\x77\x54\x64\x68\x31\x65\x38\x61\x4c\x4b\x73\x6a\x61\x34\x75\x51\x38\x6b\x61\x76\x4c\x4b\x64\x4c\x72\x6b\x6c\x4b\x30\x5a\x65\x4c\x37\x71\x6a\x4b\x4c\x4b\x55\x54\x4c\x4b\x75\x51\x4d\x38\x6b\x39\x62\x64\x76\x44\x65\x4c\x31\x71\x69\x53\x6e\x52\x35\x58\x56\x49\x58\x54\x4f\x79\x6a\x45\x4e\x69\x6b\x72\x70\x68\x4e\x6e\x72\x6e\x56\x6e\x68\x6c\x42\x72\x7a\x48\x6f\x6f\x4b\x4f\x59\x6f\x79\x6f\x6b\x39\x33\x75\x37\x74\x4f\x4b\x43\x4e\x79\x48\x7a\x42\x42\x53\x6e\x67\x75\x4c\x67\x54\x63\x62\x79\x78\x6c\x4e\x4b\x4f\x59\x6f\x59\x6f\x4d\x59\x61\x55\x54\x48\x70\x68\x52\x4c\x32\x4c\x75\x70\x51\x51\x30\x68\x74\x73\x46\x52\x54\x6e\x35\x34\x31\x78\x33\x45\x32\x53\x65\x35\x54\x32\x36\x50\x79\x4b\x4b\x38\x51\x4c\x54\x64\x64\x4a\x6c\x49\x5a\x46\x42\x76\x79\x6f\x53\x65\x55\x54\x4c\x49\x6b\x72\x76\x30\x6f\x4b\x79\x38\x4f\x52\x70\x4d\x6d\x6c\x6b\x37\x47\x6c\x36\x44\x42\x72\x6d\x38\x53\x6f\x79\x6f\x69\x6f\x79\x6f\x61\x78\x72\x4f\x71\x68\x30\x58\x77\x50\x31\x78\x75\x31\x51\x77\x31\x75\x70\x42\x62\x48\x72\x6d\x72\x45\x44\x33\x54\x33\x34\x71\x69\x4b\x4f\x78\x51\x4c\x54\x64\x45\x5a\x4f\x79\x5a\x43\x61\x78\x51\x6d\x52\x78\x67\x50\x55\x70\x30\x68\x70\x6e\x50\x6e\x34\x73\x72\x52\x65\x38\x42\x44\x53\x6f\x32\x50\x54\x37\x61\x78\x71\x4f\x43\x57\x52\x4f\x70\x6f\x70\x68\x53\x59\x70\x6e\x53\x6f\x30\x34\x75\x38\x33\x4b\x37\x32\x50\x65\x75\x37\x30\x68\x42\x70\x43\x73\x71\x44\x70\x46\x34\x71\x48\x49\x4d\x58\x70\x4c\x51\x34\x32\x39\x6b\x39\x38\x61\x45\x61\x4a\x72\x31\x42\x46\x33\x43\x61\x33\x62\x49\x6f\x7a\x70\x30\x31\x49\x50\x66\x30\x59\x6f\x66\x35\x47\x78\x41\x41";
int main()
{
    int (*ret)() = (int(*)())shellcode;
    ret();
}

编译运行即可得到flag:PCTF{Begin_4_good_pwnn3r}.

0x19 A Piece Of Cake

题目描述

nit yqmg mqrqn bxw mtjtm nq rqni fiklvbxu mqrqnl xwg dvmnzxu lqjnyxmt xatwnl, rzn nit uxnntm xmt zlzxuuk mtjtmmtg nq xl rqnl. nitmt vl wq bqwltwlzl qw yivbi exbivwtl pzxuvjk xl mqrqnl rzn nitmt vl atwtmxu xamttetwn xeqwa tsftmnl, xwg nit fzruvb, nixn mqrqnl ntwg nq gq lqet qm xuu qj nit jquuqyvwa: xbbtfn tutbnmqwvb fmqamxeevwa, fmqbtll gxnx qm fiklvbxu ftmbtfnvqwl tutbnmqwvbxuuk, qftmxnt xznqwqeqzluk nq lqet gtamtt, eqdt xmqzwg, qftmxnt fiklvbxu fxmnl qj vnltuj qm fiklvbxu fmqbtlltl, ltwlt xwg exwvfzuxnt nitvm twdvmqwetwn, xwg tsivrvn vwntuuvatwn rtixdvqm - tlftbvxuuk rtixdvqm yivbi evevbl izexwl qm qnitm xwvexul. juxa vl lzrlnvnzntfxllvldtmktxlkkqzaqnvn. buqltuk mtuxntg nq nit bqwbtfn qj x mqrqn vl nit jvtug qj lkwnitnvb rvquqak, yivbi lnzgvtl twnvnvtl yiqlt wxnzmt vl eqmt bqefxmxrut nq rtvwal nixw nq exbivwtl.

解题过程

加密方式为字母频率破解替换加密,可在http://quipqiup.com/上进行在线解密。
解密后得到

the word robot can refer to both physical robots and virtual software agents, but the latter are usually referred to as bots. there is no consensus on which machines pualify as robots but there is general agreement among experts, and the public, that robots tend to do some or all of the following: accept electronic programming, process data or physical perceptions electronically, operate autonomously to some degree, move around, operate physical parts of itself or physical processes, sense and manipulate their environment, and exhibit intelligent behavior - especially behavior which mimics humans or other animals. flag is substitutepassisveryeasyyougotit. closely related to the concept of a robot is the field of synthetic biology, which studies entities whose nature is more comparable to beings than to machines.

0x20 -.-字符串

题目描述

请选手观察以下密文并转换成flag形式

..-. .-.. .- –. ….. ..— ..— —– .—- —.. -.. -…. -…. ….. …– —.. –… -.. .—- -.. .- —-. …– .—- —.. .—- ..— -… –… –… –… -…. …– ….- .—- —–

flag形式为32位大写md5

解题过程

啥也不说,直接摩斯密码解密得到flag.

0x21 德军的密码

题目描述

已知将一个flag以一种加密形式为使用密钥进行加密,使用密钥WELCOMETOCFF加密后密文为 000000000000000000000000000000000000000000000000000101110000110001000000101000000001 请分析出flag。Flag为12位大写字母

解题过程

一种名为费纳姆密码的加密方式,解密脚本如下

# coding=utf-8
#--author:Magician--
miwen='000000000000000000000000000000000000000000000000000101110000110001000000101000000001'
passdict={'A':'1000001','B':'1000010','C':'1000011', 'D': '1000100','E':'1000101', 'F' :'1000110', 'G': '1000111', 'H': '1001000', 'I': '1001001', 'J': '1001010','K': '1001011', 'L' :'1001100', 'M': '1001101', 'N': '1001110', 'O': '1001111', 'P': '1010000' ,'Q': '1010001' ,'R' :'1010010', 'S' :'1010011' ,'T' :'1010100','U': '1010101' ,'V' :'1010110' ,'W' :'1010111', 'X' :'1011000' ,'Y': '1011001', 'Z' :'1011010'}
password='WELCOMETOCFF'
li=[]
for i in password:
    li.append(passdict[i])
flag=''
for i in range(0,len(miwen),7):
    test=miwen[i:i+7]
    test=int(test,2)
    test^=int(li[i/7],2)
    for i,j in passdict.items():
        if test==int(j,2):
            flag+=i
print '解密/加密结果为:%s'%flag

0x22 握手包

题目描述

给你握手包,flag是Flag_is_here这个AP的密码,自己看着办吧。

解题过程

以前没接触过,百度得知可以用linux自带的aircrack-ng进行暴力破解。

aircrack-ng -a2 -w password.txt wifi.cap
Jarvis OJ - Basic - veryeasyRSA(用实例详解RSA--超容易理解) 最近在研究RSA,好久没更新了......翻了数论的欧拉-费小马-模反--等等..不研究清楚他们的联系和这题的原理实在不想直接做题啥也不懂....总结了wiki和各路大神的分析,先来一波数学基础知识: RSA加密算法是一种非对称加密算法。 对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用R... 阅读详情

相关推荐

CRYPTO [61dctf]cry Writeup(RSA已知p的高位攻击)

边学边做的大龄小白写了第一篇wp -.- [61dctf]cry 题目来源:https://www.jarvisoj.com/challenges Coppersmith攻击:已知p的高位攻击 关键点:用SageMath 恢复RSA完整的p 题目给了源码,其中print如下信息: print ====welcome to cry system==== (p,q,n,e,d)=rsa_gen() print give you the public key: print n:+hex(n).replace(L,) print e:+h

Jarvisoj刷题笔记(CTF Basic题)

某天A君的网站被日,管理员密码被改,死活登不上,去数据库一看,啥,这密码md5不是和原来一样吗?为啥登不上咧?d78b6f302l25cdc811adfe8d4e7c9fd34 请提交PCTF{原来的管理员密码}

好学分子的博客 1074

HyperMesh实战:5种复杂载荷场景下的field映射技巧(附TCL脚本)

本文详细介绍了HyperMesh在5种复杂载荷场景下的field映射技巧,包括轴承载荷的圆柱坐标系映射、粉末压力中的切向力处理、实验数据到有限元模型的场映射、多工况载荷的组合映射以及局部细化网格的边界条件传递。通过实战案例和TCL脚本,帮助工程师高效解决有限元分析中的载荷映射难题,提升工作效率。

fanta的博客 294

reversing.kr Easy_CrackMe的逆向解题报告

本文的Easy_CrackMe.exe的下载链接为http://reversing.kr/challenge.php,本文使用的工具为OD #分析过程 1.运行该程序,并输入一行字符串点击check,出现对话框提示Incorrect Password 2.在OD中搜索所有的引用字符串,并在窗口搜索"Incorrect Password ",找到之后点击进入反汇编窗口,往上翻看我们还能发现显示提示...

qq_33526144的博客 616

基于TI MSPM0的PS2双轴按键摇杆模块ADC+GPIO驱动移植实战

本文详细介绍了在TI MSPM0微控制器上驱动PS2双轴按键摇杆模块的完整实战流程。通过SysConfig图形化工具配置ADC与GPIO引脚,并编写了包含ADC采样、按键检测及数据处理的驱动代码,实现了对摇杆X/Y轴模拟量及按键数字量的稳定读取,为嵌入式控制项目提供了可直接移植的解决方案。

weixin_42465140的博客 83

libiec61850实战:手把手教你用C语言动态获取IED设备模型(附完整代码解析)

本文详细介绍了如何使用libiec61850库通过C语言动态获取IED设备模型,包括环境配置、连接建立、模型遍历及错误处理等关键步骤。通过完整的代码示例和实战案例,帮助开发者掌握智能变电站通信中的核心技术,提升工业自动化系统的开发效率。

weixin_42519985的博客 434

CTF——Base64?

GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI=== 首先需要区分base16,base32,base64三种编码方式: 1、base16的编码表字符串是数字0~9和字母A~F; 2、base32的编码表字符串是字母A~Z和数字2~7; 3、base64的编码表字符串是字母A~Z,a~z,数字0~9,“+”,“/”。 4、根据编码原理,只有base32和base64编码方式可能会出现末尾的补

Zhang_hongchao的博客 2421

Pulpino SoC中挂载AXI从机接口的自定义IP说明

AXI 从机接口挂载 Pulpino SoC 调试Pulpino SoC中挂载AXI从机接口的自定义IP说明PULPion SoC介绍自定义AXI IP挂载IP挂载框图代码修改脚本修改自定义AXI IP调试C语言编写软件调试硬件调试 Pulpino SoC中挂载AXI从机接口的自定义IP说明 本篇文章主要从工程的角度描述了如何将具有AXI从机接口的自定义IP挂载到Pulpino SoC上,其中不涉及到SoC中的任何原理知识。 PULPion SoC介绍 PULPion SoC整体架构如下图所示, PULPi

小陈的芯片学习之路 2211

Jarvis OJ Basic WP

1. -.-字符串 摩斯密码 2. secret 打开题目地址是个网页跳转,据大佬说直接用burpsuite,我就试了一下 后来发现了个更方便的方法,直接F12,你懂的 3. A Piece Of Cake 在线工具:https://quipqiup.com/ 字母频率破解替换加密 分析上下文,发现缺少的字母是b,填充进去拿flag就好 4. 美丽的实验室logo 工具st...

qq_42192672的博客 1222

CODESYS开发实战:EtherCAT总线伺服从站配置与运动控制

本文详细介绍了在CODESYS平台上进行EtherCAT总线伺服从站配置与运动控制的实战教程。内容涵盖从设备描述文件安装、主从站拓扑构建,到核心的伺服使能状态机编程、过程数据映射,以及最终实现点位运动控制的完整流程。文章旨在帮助开发者快速掌握基于CODESYS的EtherCAT总线伺服控制技术,提升工业自动化项目开发效率。

weixin_29281915的博客 327

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码)

自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类。

十多年IT经验,专注机器视觉,智能制造半导体行业 5034

Jarvis OJ BASIC 解题记录(部分)

Jarvis OJ BASIC 解题记录 0x01 握手包 下载流量包 通过aircrack-ng(kail自带) 破解密码,用kail自带的字典 执行以下命令 破解成功 0x02

weixin_44732566的博客 453

06 - 深度学习处理器原理

深度学习处理器的重要性在于它们可以加速深度学习任务的执行,从而推动了人工智能的发展。传统的通用处理器虽然可以执行深度学习任务,但它们不够高效,需要消耗大量的能量和时间。深度学习处理器通过硬件加速和特定设计来优化深度学习任务的执行,从而可以提高执行效率、降低能耗和加速训练和推断过程。 深度学习处理器的发展也推动了深度学习算法的创新,因为算法的发展需要硬件的支持和驱动。同时,深度学习处理器的出现也促进了更广泛的应用场景,包括自动驾驶、人脸识别、语音识别、图像识别等领域。因此,深度学习处理器的重要性不仅在于加速

m0_51339444的博客 752

JarvisOJ Basic Base64?

GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI=== 题目非常具有迷惑性,我一开始以为就是一个base64编码,但是看到了最后的3个=,base64最多有两个,继续观察好像只有大写字母,数字也只有2~7,大胆猜测是base32 解码得到504354467b4a7573745f7...

weixin_30667301的博客 349

乐企增值税及附加税费(一般纳税人适用)申报表填报能力说明文档V3.009

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 346

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

关于Base32和Base64的一点区分注意

Base编码方式关于 Base32和Base64的一点区分注意 看到编码内容,只有大写和数字,根据Base64和Base32 区别: base64中包含大写字母(A-Z)、小写字母(a-z)、数字0——9以及+/; base32中只有大写字母(A-Z)和数字234567 使用base32编码解码: GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3T...

MignonMi的博客 8136

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

pwn学习---ropgadget和ret2syscall

ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,攻击者扫描已有的动态链接库和可执行文件,提取出可以利用的指令片段(gadget),这些指令片段均以ret指令结尾,即用ret指令实现指令片段执行流的衔接,从而构建恶意代码。可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。 ret2syscall,即控制程序执行系...

gclome的博客 1996

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jarvis OJ

basic Baby’s Crack 程序大概就是打开一个命令行输入的 file,然后打开一个 tmp,对 file 加密写入 tmp,将 file 删除,将 tmp 重命名为 file。 直接在 ida 中 F5,关键的代码就是: while (feof(*(_QWORD *)&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;argc, argv, v8, v16) == 0)

CHOOOU的博客 1051

Jarvis OJ -BASIC-WRITE-UP

似乎寒假起就没有好好刷过ctf题了,感觉菜的和狗一样。愈发的感觉到无力。所以来JarvisOJ修炼了,写个WP记录一下。BASIC veryeasyquestion:使用基本命令获取flaganswer:放winhex里面看下,没发现什么东西。题目说是基本命令,试了试binwalk,也什么都没有,再试strings。拿到flag。 关于USS Labquestion:USS的英文全称是什么,请全部...

郁离歌丶的博客 4798

【考据】“烫烫烫”与“锟斤拷”的原理

在程序猿站点上常常看到一个段子(满满的都是泪啊) 手持两把锟斤拷,口中疾呼烫烫烫。 解释一下为什么会是这两个东西不是别的= =: 棍斤拷乱码: 源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT ...

weixin_34194551的博客 338

Jarvis OJ平台basic部分wirteup

Base64? 题目描述: GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI=== Base32解码得到 504354467b4a7573745f743373745f683476335f66346e7d 貌似是十六进制,hackbar直接转换得到flag ...

weixin_30500663的博客 497

古典密码之费纳姆密码

明文:HELLO=1001000 1000101 1001100 1001100 1001111。密钥:CRUDE=1000011 1010010 1010101 1000100 1000101。异或得到密文:0001011 0010111 0011001 0001000 0001010。费纳姆密码采用二进制表示,加密时要将明文和密钥都转化成7位数的二进制数。解密时将密文7位为一组,然后与密钥异或,在将结果转化为ASCLL即可。例题:(www.jarvisoj.com/challenges)

2302_80322812的博客 1639

常见古典密码

古典密码 文章目录古典密码前言1.Affine(仿射加密)2.Bacon(培根加密)3.Brainfuck4.Caesar(凯撒加密)5.Fence(栅栏加密)6.Fenham(费纳姆加密)7.Morse(摩斯密码)8.Pigen(猪圈加密)9.Vigenere(维吉尼亚加密) 前言 系统的学习了一下古典密码,这里大概整理一下主要的加密方式以及实现加解密的python代码。 1.Affine(仿射加密) 单码加密法的另一种形式称为仿射加密法(affine cipher)。在仿射加密法中,字母表的字母被

m0_53612740的博客 9282

CTF之密码学(费纳姆密码)

费纳姆密码是一种由二进制产生的替换密码,也被称为弗纳姆密码(Vernam cipher)。它采用二进制表示法,将明文转化为二进制数字,并通过与密钥进行模2加法运算来产生密文。

qq_73792226的博客 1004

密码学---常见的其他密码

各种密码的介绍,包括一些图形密码

weixin_47450099的博客 1657

Jarvis OJ writeup Basic

德军的密码先把秘钥转成二进制,96位,然后密文是84位,相差12位。因为每8位二进制是一个ascii码字符,所以猜测是密文的每组都少了一位 把密文按7位分组,每组前加一个0,最后把处理之后的密文跟秘钥异或,就出来了 payloada = '0000000000000000000000000000000000000000000000000000000000010111000001100001000

quedgee 1030
上一篇: JarvisOJ misc100-easyapk wp
下一篇: Android动态调试--jeb调试apk
Magic1an
博客等级 码龄9年 7粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值