Commit 3e1be19e35e8280c3e7461f09b85c1dbf0cad82b

Authored by Chunk
2 parents f4b5291c 04cd1acf
Exists in master

why?

common.pyc
No preview for this file type
mjpeg/base.pyc
No preview for this file type
mjpeg/dct.pyc
No preview for this file type
msteg/__init__.pyc
No preview for this file type
msteg/steganalysis/MPB.py
... ... @@ -6,9 +6,10 @@ Yun Q. Shi, et al - A Markov Process Based Approach to Effective Attacking JPEG
6 6 import time
7 7 import math
8 8 import numpy as np
9   -from msteg import *
10   -import mjpeg
11   -from common import *
  9 +
  10 +from .. import *
  11 +from ...mjpeg import Jpeg,colorMap
  12 +from ...common import *
12 13  
13 14 import csv
14 15 import json
... ... @@ -96,7 +97,7 @@ class MPB(StegBase):
96 97 :return: TPM - 3-D tensor, numpy array of size (2*T+1, 2*T+1, 4)
97 98 """
98 99  
99   - # return self._get_trans_prob_mat_orig(ciq, T)
  100 + return self._get_trans_prob_mat_orig(ciq, T)
100 101  
101 102  
102 103 # timer = Timer()
... ... @@ -109,17 +110,17 @@ class MPB(StegBase):
109 110 Fd = ciq[:-1, :-1] - ciq[1:, 1:]
110 111 Fm = ciq[:-1, 1:] - ciq[1:, :-1]
111 112  
112   - Fh1 = Fh[:-1, :-1]
113   - Fh2 = Fh[:-1, 1:]
  113 + Fh1 = Fh[:-1, :-1].ravel()
  114 + Fh2 = Fh[:-1, 1:].ravel()
114 115  
115   - Fv1 = Fv[:-1, :-1]
116   - Fv2 = Fv[1:, :-1]
  116 + Fv1 = Fv[:-1, :-1].ravel()
  117 + Fv2 = Fv[1:, :-1].ravel()
117 118  
118   - Fd1 = Fd[:-1, :-1]
119   - Fd2 = Fd[1:, 1:]
  119 + Fd1 = Fd[:-1, :-1].ravel()
  120 + Fd2 = Fd[1:, 1:].ravel()
120 121  
121   - Fm1 = Fm[:-1, 1:]
122   - Fm2 = Fm[1:, :-1]
  122 + Fm1 = Fm[:-1, 1:].ravel()
  123 + Fm2 = Fm[1:, :-1].ravel()
123 124  
124 125  
125 126  
... ... @@ -131,7 +132,19 @@ class MPB(StegBase):
131 132 # TPM[Fm1.ravel(), Fm2.ravel(), 3] += 1
132 133 # timer.report()
133 134  
134   - # 1.936746s
  135 + # 1.459668s
  136 + # timer.mark()
  137 + # for i in range(len(Fh1)):
  138 + # TPM[Fh1[i], Fh2[i], 0] += 1
  139 + # for i in range(len(Fv1)):
  140 + # TPM[Fv1[i], Fv2[i], 1] += 1
  141 + # for i in range(len(Fd1)):
  142 + # TPM[Fd1[i], Fd2[i], 2] += 1
  143 + # for i in range(len(Fm1)):
  144 + # TPM[Fm1[i], Fm2[i], 3] += 1
  145 + # timer.report()
  146 +
  147 + # 1.463982s
135 148 # timer.mark()
136 149 for m, n in zip(Fh1.ravel(), Fh2.ravel()):
137 150 TPM[m, n, 0] += 1
... ...
msteg/steganography/F3.pyc
No preview for this file type
msteg/steganography/LSB.pyc
No preview for this file type
res/extracted
... ... @@ -1,34 +0,0 @@
1   -this is to be embeded.
2   -//0216
3   -vim of clang - https://github.com/JBakamovic/yavide
4   -# Usage overview
5   -Category | Shortcut | Description
6   ---------------------------------- | --------------------------------- | ---------------------------------
7   -**Project management** | |
8   - | `<Ctrl-s>n` | Create new project
9   - | `<Ctrl-s>i` | Import project with already existing code base
10   - | `<Ctrl-s>o` | Open project
11   - | `<Ctrl-s>c` | Close project
12   - | `<Ctrl-s>s` | Save project
13   - | `<Ctrl-s>d` | Delete project
14   -**Buffer management** | |
15   - | `<Ctrl-c>` | Close current buffer
16   - | `<Ctrl-s>` | Save current buffer
17   - | `<Ctrl-Tab>` | Go to next buffer
18   - | `<Ctrl-Shift-Tab>` | Go to previous buffer
19   - | `<Ctrl-Down>` | Scroll buffer by one line (down)
20   - | `<Ctrl-Up>` | Scroll buffer by one line (up)
21   -**Buffer modes** | |
22   - | `<ESC>` | Enter the `normal` mode
23   - | `<a>` | Enter the `insert` mode (append after cursor)
24   - | `<i>` | Enter the `insert` mode (insert before cursor)
25   - | `<Shift-v>` | Enter the `visual` mode (line mode)
26   - | `<v>` | Enter the `visual` mode (character mode)
27   -**Buffer editing** | |
28   - | `<Ctrl-a>` | Select all
29   - | `<Ctrl-x>` | Cut
30   - | `<Ctrl-c>` | Copy
31   - | `<Ctrl-v>` | Paste
32   - | `<Ctrl-z>` | Undo
33   - | `<Ctrl-r>` | Redo
34   - | `<Shift-s>` | Delete the whole line
res/extracted.jpg 0 โ†’ 100644

7.11 KB

res/lena128.png 0 โ†’ 100644

31.1 KB

res/lena64.png 0 โ†’ 100644

11.2 KB

res/lena64gray.jpg 0 โ†’ 100644

7.11 KB

res/steged.jpg

47.9 KB | W: | H:

64.8 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
res/thulib.jpg 0 โ†’ 100644

124 KB

res/thulib2.jpg 0 โ†’ 100644

83.8 KB

test_steg.py
... ... @@ -27,11 +27,12 @@ txtsample = [116, 104, 105, 115, 32, 105, 115, 32, 116, 111, 32, 98, 101, 32, 10
27 27  
28 28 if __name__ == '__main__':
29 29 # f3test = F4.F4(sample_key)
30   - f3test = F5.F5(sample_key, 3)
31   - f3test.embed_raw_data("res/test3.jpg", "res/embeded", "res/steged.jpg")
  30 + f3test = F5.F5(sample_key, 1)
  31 + # f3test.embed_raw_data("res/test3.jpg", "res/embeded", "res/steged.jpg")
  32 + f3test.embed_raw_data("res/thulib2.jpg", "res/lena64gray.jpg", "res/steged.jpg")
32 33  
33 34 # f3test2 = F4.F4(sample_key)
34   - f3test.extract_raw_data("res/steged.jpg", "res/extracted")
  35 + f3test.extract_raw_data("res/steged.jpg", "res/extracted.jpg")
35 36 print f3test.get_key()
36 37 pass
37 38  
... ...
test_steganal.py
... ... @@ -2,8 +2,8 @@ __author__ = &#39;chunk&#39;
2 2  
3 3 import numpy as np
4 4 from mjpeg import *
5   -from msteg.steganography import LSB, F3, F4, F5
6   -from msteg.steganalysis import MPB
  5 +from msteg.steganography import LSB, F3, F4, F5
  6 +from msteg.steganalysis import MPB
7 7  
8 8 from common import *
9 9  
... ... @@ -29,14 +29,14 @@ if __name__ == &#39;__main__&#39;:
29 29  
30 30 timer.mark()
31 31 ima = Jpeg("res/test3.jpg", key=sample_key)
32   - timer.report() # 0.006490s
  32 + timer.report() # 0.006490s
33 33  
34 34 ciq = ima.coef_arrays[colorMap['Y']]
35   - timer.report() # 0.000019s
  35 + timer.report() # 0.000019s
36 36  
37 37 mpbSteg = MPB.MPB()
38   - tpm = mpbSteg.get_trans_prob_mat(ciq)
39   - timer.report() # 1.365718s
  38 + tpm = mpbSteg._get_trans_prob_mat_orig(ciq)
  39 + timer.report() # 1.365718s
40 40  
41 41 print tpm, tpm.shape
42 42 pass
... ...