codeobscure 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/codeobscure/filtsymbols.rb +19 -6
- data/lib/codeobscure/funclist.rb +0 -1
- data/lib/codeobscure/obscure.rb +4 -30
- data/lib/codeobscure/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f0fed590b8e0d0a7cc9ddd175ad10e9cd55835d
|
4
|
+
data.tar.gz: 3deda2e09f16a629884f683cf58977aba8663ffe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d34946f8bf2471ea101f88796b773ba4d971c3736c3a5ffa6449bbb78ed30a4088ad0e7466fe987a95bf9636f851f89b0c311231d10fd9496ef801dad47f61b8
|
7
|
+
data.tar.gz: 32582c1c8977f7c7d081421ee4157f8f505846edd1a588e3df2f6caaf703dd127788759eeaea67c4f393935d2e78ef9f52a18b37cd9a219f2b8d7791b5ee337c
|
@@ -1,26 +1,41 @@
|
|
1
1
|
require_relative "funclist.rb"
|
2
|
+
require 'sqlite3'
|
2
3
|
require "colorize"
|
3
4
|
module FiltSymbols
|
4
5
|
@@filt_db_path = "#{File.expand_path '../../..', __FILE__}/filtSymbols"
|
5
6
|
@@table_name = "symbols"
|
6
7
|
@@key_words = ["interface","NSInteger","BOOL","Class","free","M_PI_2","abort","change","top","bottom","NSUIntegerMax","intoString"]
|
7
8
|
|
9
|
+
def self.open_db
|
10
|
+
if @@db.nil? || @@db.closed?
|
11
|
+
@@db = SQLite3::Database.new(@@filt_db_path)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
def self.createTable
|
9
|
-
|
10
|
-
|
16
|
+
open_db
|
17
|
+
if @@db
|
18
|
+
@@db.execute "create table if not exists #{@@table_name}(src text,PRIMARY KEY (src));"
|
11
19
|
end
|
12
20
|
end
|
13
21
|
|
14
22
|
def self.insertValue(line)
|
15
|
-
|
23
|
+
open_db
|
24
|
+
@@db.execute "insert or ignore into #{@@table_name} values('#{line}');"
|
16
25
|
end
|
17
26
|
|
18
27
|
def self.query(line)
|
19
|
-
|
28
|
+
open_db
|
29
|
+
results = []
|
30
|
+
@@db.execute "select * from #{@@table_name} where src='#{line}';" do |row|
|
31
|
+
results << row
|
32
|
+
end
|
33
|
+
results
|
20
34
|
end
|
21
35
|
|
22
36
|
def self.loadFiltSymbols(path)
|
23
37
|
|
38
|
+
@@db = SQLite3::Database.new(@@filt_db_path)
|
24
39
|
createTable
|
25
40
|
|
26
41
|
funclist_path = FuncList.genFuncList path , "h" , false
|
@@ -40,8 +55,6 @@ module FiltSymbols
|
|
40
55
|
`rm -f #{funclist_path}`
|
41
56
|
end
|
42
57
|
|
43
|
-
`sqlite3 #{@@filt_db_path} .dump`
|
44
|
-
|
45
58
|
end
|
46
59
|
|
47
60
|
end
|
data/lib/codeobscure/funclist.rb
CHANGED
data/lib/codeobscure/obscure.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'filtsymbols.rb'
|
2
|
+
require 'sqlite3'
|
2
3
|
|
3
4
|
class String
|
4
5
|
def upcase_first_letter
|
@@ -8,27 +9,9 @@ end
|
|
8
9
|
|
9
10
|
module Obscure
|
10
11
|
|
11
|
-
|
12
|
-
@@TABLENAME="symbols"
|
13
|
-
@@SYMBOL_DB_FILE="symbols"
|
14
12
|
@@STRING_SYMBOL_FILE="func.list"
|
15
13
|
@@IGNORE_NAME="ignoresymbols"
|
16
14
|
|
17
|
-
#维护数据库方便日后作排重
|
18
|
-
def self.createTable
|
19
|
-
if !File.exist? @@SYMBOL_DB_FILE
|
20
|
-
`echo "create table #{@@TABLENAME}(src text, des text,PRIMARY KEY (src));" | sqlite3 #{@@SYMBOL_DB_FILE}`
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.insertValue(line,ramdom)
|
25
|
-
`echo "insert or ignore into #{@@TABLENAME} values('#{line}' ,'#{ramdom}');" | sqlite3 #{@@SYMBOL_DB_FILE}`
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.query(line)
|
29
|
-
`echo "select * from #{@@TABLENAME} where src='#{line}';" | sqlite3 #{@@SYMBOL_DB_FILE}`
|
30
|
-
end
|
31
|
-
|
32
15
|
def self.ramdomString
|
33
16
|
`openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 16`
|
34
17
|
end
|
@@ -37,30 +20,26 @@ module Obscure
|
|
37
20
|
def self.run(root_dir)
|
38
21
|
|
39
22
|
@@HEAD_FILE="#{root_dir}/codeObfuscation.h"
|
40
|
-
@@SYMBOL_DB_FILE = "#{root_dir}/#{@@SYMBOL_DB_FILE}"
|
41
23
|
@@STRING_SYMBOL_FILE = "#{root_dir}/#{@@STRING_SYMBOL_FILE}"
|
42
24
|
|
43
25
|
ignore_symbols = []
|
44
26
|
ignore_path = "#{root_dir}/#{@@IGNORE_NAME}"
|
45
27
|
if File.exist? ignore_path
|
46
28
|
ignore_content = File.read ignore_path
|
47
|
-
ignore_symbols = ignore_content.gsub(" " , "").split "
|
29
|
+
ignore_symbols = ignore_content.gsub(" " , "").split ","
|
48
30
|
end
|
49
31
|
|
50
|
-
if File.exist? @@SYMBOL_DB_FILE
|
51
|
-
`rm -f #{@@SYMBOL_DB_FILE}`
|
52
|
-
end
|
53
32
|
if File.exists? @@HEAD_FILE
|
54
33
|
`rm -f #{@@HEAD_FILE}`
|
55
34
|
end
|
56
|
-
|
57
|
-
|
35
|
+
|
58
36
|
date = `date`
|
59
37
|
file = File.new @@HEAD_FILE , 'w'
|
60
38
|
file.puts "#ifndef co_codeObfuscation_h"
|
61
39
|
file.puts "#define co_codeObfuscation_h"
|
62
40
|
file.puts "//confuse string at #{date.to_s}"
|
63
41
|
|
42
|
+
#beginTransition
|
64
43
|
symbol_file = File.open(@@STRING_SYMBOL_FILE).read
|
65
44
|
symbol_file.each_line do |line|
|
66
45
|
line_type = line.rstrip.split(":").first
|
@@ -68,7 +47,6 @@ module Obscure
|
|
68
47
|
result = FiltSymbols.query(line_content)
|
69
48
|
if result.nil? || result.empty?
|
70
49
|
ramdom = ramdomString
|
71
|
-
insertValue line_content , ramdom
|
72
50
|
if line_type == "p"
|
73
51
|
result = FiltSymbols.query("set#{line_content.upcase_first_letter}")
|
74
52
|
if result.nil? || result.empty?
|
@@ -89,10 +67,6 @@ module Obscure
|
|
89
67
|
file.puts "#endif"
|
90
68
|
file.close
|
91
69
|
|
92
|
-
`sqlite3 #{@@SYMBOL_DB_FILE} .dump`
|
93
|
-
if File.exist? @@SYMBOL_DB_FILE
|
94
|
-
`rm -f #{@@SYMBOL_DB_FILE}`
|
95
|
-
end
|
96
70
|
if File.exist? @@STRING_SYMBOL_FILE
|
97
71
|
`rm -f #{@@STRING_SYMBOL_FILE}`
|
98
72
|
end
|
data/lib/codeobscure/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codeobscure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaich
|
@@ -86,6 +86,20 @@ dependencies:
|
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 1.0.0
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: sqlite3
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
89
103
|
description: Code Obscure Tool.You can use it simplely
|
90
104
|
email:
|
91
105
|
- chengkai1853@163.com
|