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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc46c29d16431aa5724127eb45ff735d61616676
4
- data.tar.gz: a2d88e7530509c538456faf34689e3a4bd83b52a
3
+ metadata.gz: 4f0fed590b8e0d0a7cc9ddd175ad10e9cd55835d
4
+ data.tar.gz: 3deda2e09f16a629884f683cf58977aba8663ffe
5
5
  SHA512:
6
- metadata.gz: 50342df74fc000230cf46a163ca7a8f10027465d7b42ef7fc9dd8a25e12d59989b29cd071fe7ceed11521f07d24afa0fc124ab353d4a318429000f91303238de
7
- data.tar.gz: 7afa08ca24f4e388f133b8c953fcd24b5e8d7642cdf81f680c5be6b5f7b20c34fe45eea806eb23e45be44b81ec6a81523348f354f96502baa534971157a7afa4
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
- if !File.exist? @@filt_db_path
10
- `echo "create table #{@@table_name}(src text,PRIMARY KEY (src));" | sqlite3 #{@@filt_db_path}`
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
- `echo "insert or ignore into #{@@table_name} values('#{line}');" | sqlite3 #{@@filt_db_path}`
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
- `echo "select * from #{@@table_name} where src='#{line}';" | sqlite3 #{@@filt_db_path}`
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
@@ -101,7 +101,6 @@ module FuncList
101
101
  end
102
102
 
103
103
  def self.genFuncList(path,type = "m",need_filt=true,fetch_types=["p","f","c"])
104
- puts "#######################{fetch_types}"
105
104
  capture_methods = []
106
105
  p_methods = []
107
106
  funclist_path = "#{path}/func.list"
@@ -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 "\n"
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
- createTable
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
@@ -1,3 +1,3 @@
1
1
  module Codeobscure
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
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.2
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