android
  #1  
Old 06-08-2010, 03:50 AM
ustc0911 ustc0911 is offline
Junior Member
 
Join Date: Jan 2010
Posts: 7
Default My Calculator app's screenshots

I find that add one special to every function in the source code , you can NOT decompile the compiled file with luadec.Here are some screenshots of my app:what do you think about the UI?

Attached Images
File Type: png image2.png (49.6 KB, 86 views)
File Type: png image3.png (55.5 KB, 78 views)
File Type: png image4.png (45.5 KB, 71 views)
File Type: png image21.png (44.4 KB, 70 views)
File Type: png image22.png (29.4 KB, 73 views)

Last edited by ustc0911; 06-08-2010 at 03:58 AM.
Reply With Quote

Advertisement [Remove Advertisement]

  #2  
Old 06-08-2010, 04:27 AM
Habhome's Avatar
Habhome Habhome is offline
Moderator
 
Join Date: Jan 2010
Location: Sweden
Posts: 1,079
Default

It's a bit too "blobby"/Bubbly or how to call it, and a tad too colorful. The green gradient in the third screen for example, what's the purpose of that? It's a bit straining for the eyes. Try and keep it less "Vista Shiny" also, some shine effects can be nice, but don't overdo it.
Also, if you use shine and shadows, then be consistent about the lightsource. In the last screen you have just rotated the button, which looks odd.
__________________
"If you are good enough at English to apologize, then there is no need to." - A good friend of mine
Discovered something about the X-Fi2 you think others may not know? Post it here so others can learn about it!
Have a question about X-Fi2 apps? Consult the FAQ before creating a thread about it.
Like my work? Tell your friends. Don't like it? Tell me so I can improve. ^.^
Reply With Quote

  #3  
Old 06-08-2010, 04:50 AM
ThievingSix ThievingSix is offline
Member
 
Join Date: Aug 2008
Posts: 218
Default

I bet I could decompile it . Of course, it's what I do for a living.

Also, instead of x^(1/3), why not use the cube root symbol?
__________________
Only ONE more functions in the Wiki need addressing!
Zen X-Fi2 LUA Wiki
Want to protect your applications? Click Here!
Tower Defense Thread
Zen Lock - Protect Your Zen!
Reply With Quote

  #4  
Old 06-08-2010, 08:43 AM
Gruffler's Avatar
Gruffler Gruffler is offline
Junior Member
 
Join Date: Feb 2010
Location: Germany
Posts: 83
Default

Wow I have to say I'm impressed!
But in my opinion UI should have the same background everywhere.
I think I can quit MY graph app now.
__________________
You're wrong here! My post is above!!! /\
_______________________________l

LOOK! MY! APPS!
Reply With Quote

  #5  
Old 06-08-2010, 09:34 AM
Brett_val's Avatar
Brett_val Brett_val is offline
Senior Member
 
Join Date: Jan 2010
Location: The Netherlands
Posts: 636
Default

All those fancy colors don't make it look like a serious calculator.. I'm a bit confused by that, because at the other hand it looks very impressive with that plot-window.

I would appreciate it if there was an option to change the UI to something more standard or professional, because I wouldn't feel very comfortable using some kind of fisher price calculator..
Don't take it personal, other people may love the looks, it's just what I prefer.
Reply With Quote

  #6  
Old 06-08-2010, 10:08 AM
Habhome's Avatar
Habhome Habhome is offline
Moderator
 
Join Date: Jan 2010
Location: Sweden
Posts: 1,079
Default

Quote:
Originally Posted by Brett_val View Post
All those fancy colors don't make it look like a serious calculator.. I'm a bit confused by that, because at the other hand it looks very impressive with that plot-window.

I would appreciate it if there was an option to change the UI to something more standard or professional, because I wouldn't feel very comfortable using some kind of fisher price calculator..
Don't take it personal, other people may love the looks, it's just what I prefer.
QFT,

Just what I was trying to say in my post =P
__________________
"If you are good enough at English to apologize, then there is no need to." - A good friend of mine
Discovered something about the X-Fi2 you think others may not know? Post it here so others can learn about it!
Have a question about X-Fi2 apps? Consult the FAQ before creating a thread about it.
Like my work? Tell your friends. Don't like it? Tell me so I can improve. ^.^
Reply With Quote

  #7  
Old 06-12-2010, 09:39 PM
ustc0911 ustc0911 is offline
Junior Member
 
Join Date: Jan 2010
Posts: 7
Default

Here is a compiled file written in lua, can you decompile it?

Quote:
Originally Posted by ThievingSix View Post
I bet I could decompile it . Of course, it's what I do for a living.

Also, instead of x^(1/3), why not use the cube root symbol?
Attached Files
File Type: zip a.zip (358 Bytes, 29 views)
Reply With Quote

  #8  
Old 06-12-2010, 10:04 PM
ThievingSix ThievingSix is offline
Member
 
Join Date: Aug 2008
Posts: 218
Default

Code:
; Name:            
; Defined at line: 0
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       2
; Max Stack Size:  2

  1 [-]: LOADBOOL  R0 0 0       ; R0 := false
  2 [-]: SETGLOBAL R0 K0        ; protect := R0
  3 [-]: CLOSURE   R0 0         ; R0 := closure(Function #1)
  4 [-]: SETGLOBAL R0 K1        ; a := R0
  5 [-]: CLOSURE   R0 1         ; R0 := closure(Function #2)
  6 [-]: SETGLOBAL R0 K2        ; b := R0
  7 [-]: CLOSURE   R0 2         ; R0 := closure(Function #3)
  8 [-]: SETGLOBAL R0 K3        ; c := R0
  9 [-]: CLOSURE   R0 3         ; R0 := closure(Function #4)
 10 [-]: SETGLOBAL R0 K4        ; d := R0
 11 [-]: RETURN    R0 1         ; return 


; Function #1:
;
; Name:            
; Defined at line: 2
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return 


; Function #2:
;
; Name:            
; Defined at line: 8
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return 


; Function #3:
;
; Name:            
; Defined at line: 14
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return 


; Function #4:
;
; Name:            
; Defined at line: 20
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return
It's not 1:1 but it gives you a good idea of what's going on in the code.
__________________
Only ONE more functions in the Wiki need addressing!
Zen X-Fi2 LUA Wiki
Want to protect your applications? Click Here!
Tower Defense Thread
Zen Lock - Protect Your Zen!
Reply With Quote

  #9  
Old 06-13-2010, 12:32 AM
ustc0911 ustc0911 is offline
Junior Member
 
Join Date: Jan 2010
Posts: 7
Default

I know that you get this using "luadec -dis a.lua", didn't you?However, this assemble code is hard to read.Although you can get the code below, it's not easy to get the original code when the function is complicate.
Quote:
Originally Posted by ThievingSix View Post
Code:
; Name:            
; Defined at line: 0
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       2
; Max Stack Size:  2

  1 [-]: LOADBOOL  R0 0 0       ; R0 := false
  2 [-]: SETGLOBAL R0 K0        ; protect := R0
  3 [-]: CLOSURE   R0 0         ; R0 := closure(Function #1)
  4 [-]: SETGLOBAL R0 K1        ; a := R0
  5 [-]: CLOSURE   R0 1         ; R0 := closure(Function #2)
  6 [-]: SETGLOBAL R0 K2        ; b := R0
  7 [-]: CLOSURE   R0 2         ; R0 := closure(Function #3)
  8 [-]: SETGLOBAL R0 K3        ; c := R0
  9 [-]: CLOSURE   R0 3         ; R0 := closure(Function #4)
 10 [-]: SETGLOBAL R0 K4        ; d := R0
 11 [-]: RETURN    R0 1         ; return 


; Function #1:
;
; Name:            
; Defined at line: 2
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return 


; Function #2:
;
; Name:            
; Defined at line: 8
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return 


; Function #3:
;
; Name:            
; Defined at line: 14
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return 


; Function #4:
;
; Name:            
; Defined at line: 20
; #Upvalues:       0
; #Parameters:     0
; Is_vararg:       0
; Max Stack Size:  9

  1 [-]: GETGLOBAL R0 K0        ; R0 := protect
  2 [-]: TEST      R0 0         ; if not R0 then PC := 15
  3 [-]: JMP       15           ; PC := 15
  4 [-]: NEWTABLE  R0 8 0       ; R0 := {}
  5 [-]: LOADK     R1 K2        ; R1 := 0
  6 [-]: LOADK     R2 K3        ; R2 := 1
  7 [-]: LOADK     R3 K4        ; R3 := 2
  8 [-]: LOADK     R4 K5        ; R4 := 3
  9 [-]: LOADK     R5 K6        ; R5 := 4
 10 [-]: LOADK     R6 K7        ; R6 := 5
 11 [-]: LOADK     R7 K8        ; R7 := 6
 12 [-]: LOADK     R8 K9        ; R8 := 7
 13 [-]: SETLIST   R0 8 1       ; R0[(1-1)*FPF+i] := R(0+i), 1 <= i <= 8
 14 [-]: SETGLOBAL R0 K1        ; tb := R0
 15 [-]: RETURN    R0 1         ; return
It's not 1:1 but it gives you a good idea of what's going on in the code.
Reply With Quote

  #10  
Old 06-13-2010, 12:42 AM
ThievingSix ThievingSix is offline
Member
 
Join Date: Aug 2008
Posts: 218
Default

Actually, it's the asm of compiled lua. It's hard for some to read but others read it like it's English.

Since the -dis even comments each line it's even easier here.

All I'm saying is that it's futile to protect your lua code. If it's worth it will get reversed, even if it's to prove it's possible.
__________________
Only ONE more functions in the Wiki need addressing!
Zen X-Fi2 LUA Wiki
Want to protect your applications? Click Here!
Tower Defense Thread
Zen Lock - Protect Your Zen!
Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



All times are GMT -5. The time now is 06:32 PM.